- Introdução
- Requisitos
- Melhores práticas
- Instalação
- Atualizando
- Servidor de Identidade
- Complemento de alta disponibilidade
Considerações de Manutenção
É importante manter seu banco de dados do Identity Server livre de bagunça. Para fazer isso, recomendamos:
A Solução de Manutenção do SQL Server é um conjunto de scripts que permite que você execute backups, verificações de integridade, e manutenção de índices e estatísticas em todas as edições do Microsoft SQL Server, a partir da versão 2005. Veja este projeto do GitHub para obter mais informações.
É recomendável que você crie um banco de dados separado para salvar itens antes de excluí-los. Esse banco de dados funciona como um arquivamento para os itens que você pode precisar armazenar por determinadas razões, como auditorias.
-
Crie um novo banco de dados chamado, por exemplo,
UiPathIdentityArchives
:create database UiPathIdentityArchives
create database UiPathIdentityArchives -
Crie as seguintes tabelas de backup:
-
ArchiveLoginAttempts
com a mesma estrutura que a tabelaUserLoginAttempts
:select * into [UiPathIdentityArchives].[dbo].[ArchiveUserLoginAttempts] from [UiPath].[dbo].[UserLoginAttempts] where 1=2
select * into [UiPathIdentityArchives].[dbo].[ArchiveUserLoginAttempts] from [UiPath].[dbo].[UserLoginAttempts] where 1=2
-
Os dados antigos são copiados para esses arquivamentos antes de serem excluídos ao usar a consulta abaixo.
Para excluir tentativas de login mais antigas do que 60 dias, por exemplo, use a consulta abaixo. Isso pode ser feito manualmente ou agendado em uma tarefa do SQL Server.
declare @NumberOfDaysToKeep int
set @NumberOfDaysToKeep = 60
if OBJECT_ID('[UiPathIdentityArchives].[dbo].[UserLoginAttemps]') = NULL
begin select * into [UiPathIdentityArchives].[dbo].[UserLoginAttemps] from [identity].UserLoginAttempts where 1=2 end
begin transaction
set identity_insert [UiPathIdentityArchives].[dbo].[UserLoginAttemps] on
insert into [UiPathIdentityArchives].[dbo].[UserLoginAttemps] ([Id],[PartitionId],[UserId],[UserNameOrEmailAddress],[ClientIpAddress],[ClientName],[BrowserInfo],[Result],[CreationTime],[AuthenticationProvider],[PartitionName])
select [Id],[PartitionId],[UserId],[UserNameOrEmailAddress],[ClientIpAddress],[ClientName],[BrowserInfo],[Result],[CreationTime],[AuthenticationProvider],[PartitionName]
from [identity].UserLoginAttempts where DateDiff(day, CreationTime, GetDate()) > @NumberOfDaysToKeep
delete from [identity].UserLoginAttempts where DateDiff(day, CreationTime, GetDate()) > @NumberOfDaysToKeep
commit transaction
declare @NumberOfDaysToKeep int
set @NumberOfDaysToKeep = 60
if OBJECT_ID('[UiPathIdentityArchives].[dbo].[UserLoginAttemps]') = NULL
begin select * into [UiPathIdentityArchives].[dbo].[UserLoginAttemps] from [identity].UserLoginAttempts where 1=2 end
begin transaction
set identity_insert [UiPathIdentityArchives].[dbo].[UserLoginAttemps] on
insert into [UiPathIdentityArchives].[dbo].[UserLoginAttemps] ([Id],[PartitionId],[UserId],[UserNameOrEmailAddress],[ClientIpAddress],[ClientName],[BrowserInfo],[Result],[CreationTime],[AuthenticationProvider],[PartitionName])
select [Id],[PartitionId],[UserId],[UserNameOrEmailAddress],[ClientIpAddress],[ClientName],[BrowserInfo],[Result],[CreationTime],[AuthenticationProvider],[PartitionName]
from [identity].UserLoginAttempts where DateDiff(day, CreationTime, GetDate()) > @NumberOfDaysToKeep
delete from [identity].UserLoginAttempts where DateDiff(day, CreationTime, GetDate()) > @NumberOfDaysToKeep
commit transaction
Recomendamos a implementação de backups regulares do banco de dados do SQL Server, como por exemplo backups semanais completos ou diários incrementais.
Além disso, recomendamos o uso do procedimento armazenado DatabaseBackup que é criado usando o script neste local.