- Erste Schritte
- Anforderungen
- Best Practices
- Installation
- Wird aktualisiert
- Identity Server
- Fehlerbehebung bei Startfehlern
Überlegungen zur Wartung
Es ist wichtig, dass Sie Ihre Identity Server-Datenbank frei von Stördaten halten. Hierfür empfehlen wir Folgendes:
Die SQL Server-Wartungslösung ist eine Reihe von Skripten, mit denen Sie Sicherungen, Integritätsprüfungen und Index- sowie Statistikwartung auf allen Editionen von SQL Server ab der Version 2005 ausführen können. Siehe dieses GitHub-Projekt für weitere Informationen.
Es wird empfohlen, eine separate Datenbank zu erstellen, in der Sie Elemente speichern, bevor Sie sie löschen. Diese Datenbank fungiert als Archiv für die Elemente, die Sie möglicherweise aus bestimmten Gründen speichern müssen, z. B. Audits.
-
Erstellen Sie eine neue Datenbank mit beispielsweise dem Namen
UiPathIdentityArchives
:create database UiPathIdentityArchives
create database UiPathIdentityArchives -
Erstellen Sie die folgenden Sicherungstabellen:
-
ArchiveLoginAttempts
mit der gleichen Struktur wie dieUserLoginAttempts
-Tabelle:select * into [UiPathIdentityArchives].[dbo].[ArchiveUserLoginAttempts] from [UiPath].[dbo].[UserLoginAttempts] where 1=2
select * into [UiPathIdentityArchives].[dbo].[ArchiveUserLoginAttempts] from [UiPath].[dbo].[UserLoginAttempts] where 1=2
-
Alte Daten werden in diese Archive kopiert, bevor sie gelöscht werden, wenn die unten genannte Abfrage verwendet wird.
Um Anmeldeversuche zu löschen, die älter als 60 Tage sind, verwenden Sie z. B. die Abfrage unten. Dies kann manuell oder geplant in einem SQL Server-Auftrag ausgeführt werden.
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
Wir empfehlen, dass Sie reguläre Sicherungen der SQL Server-Datenbank implementieren, beispielsweise wöchentliche Sicherungen oder tägliche inkrementelle Sicherungen.
Außerdem empfehlen wir, dass Sie die gespeicherte Prozedur DatabaseBackup verwenden, die mithilfe des Skripts an diesem Speicherort erstellt wird.