- Primeros pasos
- Requisitos
- Mejores prácticas
- Instalación
- Actualizando
- Servidor de identidad
- Complemento de alta disponibilidad
Considerdaciones de mantenimiento
Es importante mantener la base de datos de Identity Server libre de desorden. Para ello, recomendamos:
La solución de mantenimiento de SQL Server es un conjunto de scripts que te permiten ejecutar copias de seguridad, comprobaciones de integridad y mantenimiento de índices y estadísticas en todas las ediciones de Microsoft SQL Server a partir de la versión 2005. Consulta este proyecto de GitHub para obtener más información.
Se recomienda crear una base de datos separada en la que guardar elementos antes de eliminarlos. Esta base de datos actúa como un archivo para los elementos que puedes necesitar almacenar por ciertas razones, como las auditorías.
-
Crear una nueva base de datos llamada, por ejemplo,
UiPathIdentityArchives
:create database UiPathIdentityArchives
create database UiPathIdentityArchives -
Crear las siguientes tablas de copia de seguridad:
-
ArchiveLoginAttempts
con la misma estructura que la tablaUserLoginAttempts
:select * into [UiPathIdentityArchives].[dbo].[ArchiveUserLoginAttempts] from [UiPath].[dbo].[UserLoginAttempts] where 1=2
select * into [UiPathIdentityArchives].[dbo].[ArchiveUserLoginAttempts] from [UiPath].[dbo].[UserLoginAttempts] where 1=2
-
Los datos antiguos se copian en estos archivos antes de eliminarse cuando se utiliza la siguiente consulta.
Para eliminar los intentos de inicio de sesión de más de 60 días, por ejemplo, usa la siguiente consulta. Esto puede ejecutarse de forma manual o programada como tarea en 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 implementar copias de seguridad regulares de la base de datos de SQL Server, como copias de seguridad incrementales completas semanales o diarias.
Además, recomendamos utilizar el procedimiento almacenado en DatabaseBackup creado mediante el script en esta ubicación.