Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Synchronisieren von Datenbankbenutzern und -objekten mit einem Lesereplikat von SQL Server
Es wird erwartet, dass alle Anmeldungen, benutzerdefinierten Serverrollen, SQL-Agent-Jobs oder andere Objekte auf Serverebene, die zum Zeitpunkt der Erstellung eines Lesereplikats in der primären DB-Instance existieren, im neu erstellten Lesereplikat vorhanden sind. Objekte auf Serverebene, die nach der Erstellung des Lesereplikats in der primären DB-Instance erstellt wurden, werden jedoch nicht automatisch repliziert. Sie müssen sie manuell im Lesereplikat erstellen.
Die Datenbankbenutzer werden automatisch von der primären DB-Instance in das Lesereplikat repliziert. Da sich die Lesereplikat-Datenbank im schreibgeschützten Modus befindet, kann die Sicherheits-ID (SID) des Datenbankbenutzers in der Datenbank nicht aktualisiert werden. Daher muss beim Erstellen von SQL-Anmeldungen im Lesereplikat unbedingt sichergestellt werden, dass die SID dieser Anmeldung mit der SID der entsprechenden SQL-Anmeldung in der primären DB-Instance übereinstimmt. Wenn Sie die SIDs der SQL-Anmeldungen nicht synchronisieren, können diese nicht auf die Datenbank im Lesereplikat zugreifen. Bei authentifizierten Windows Active Directory (AD)-Anmeldungen tritt dieses Problem nicht auf, da der SQL Server die SID von Active Directory bezieht.
So synchronisieren Sie eine SQL-Anmeldung der primären DB-Instance mit dem Lesereplikat
-
Stellen Sie eine Verbindung mit der primären DB-Instance her.
-
Erstellen Sie in der primären DB-Instance eine neue SQL-Anmeldung.
USE [master] GO CREATE LOGINTestLogin1WITH PASSWORD = 'REPLACE WITH PASSWORD';Anmerkung
Geben Sie aus Sicherheitsgründen ein anderes Passwort als hier angegeben an.
-
Erstellen Sie einen neuen Datenbankbenutzer für die SQL-Anmeldung in der Datenbank.
USE [REPLACE WITH YOUR DB NAME] GO CREATE USERTestLogin1FOR LOGINTestLogin1; GO -
Überprüfen Sie die SID der neu erstellten SQL-Anmeldung in der primären DB-Instance.
SELECT name, sid FROM sys.server_principals WHERE name =TestLogin1; -
Stellen Sie eine Verbindung mit dem Lesereplikat her. Erstellen Sie die neue SQL-Anmeldung.
CREATE LOGINTestLogin1WITH PASSWORD = 'REPLACE WITH PASSWORD', SID=[REPLACE WITH sid FROM STEP #4];
Wenn Sie Zugriff auf die Lesereplikat-Datenbank haben, können Sie den verwaisten Benutzer alternativ wie folgt korrigieren:
-
Stellen Sie eine Verbindung mit dem Lesereplikat her.
-
Identifizieren Sie die verwaisten Benutzer in der Datenbank.
USE [REPLACE WITH YOUR DB NAME] GO EXEC sp_change_users_login 'Report'; GO -
Erstellen Sie eine neue SQL-Anmeldung für den verwaisten Datenbankbenutzer.
CREATE LOGINTestLogin1WITH PASSWORD = 'REPLACE WITH PASSWORD', SID=[REPLACE WITH sid FROM STEP #2];Beispiel:
CREATE LOGINTestLogin1WITH PASSWORD = 'TestPa$$word#1', SID=[0x1A2B3C4D5E6F7G8H9I0J1K2L3M4N5O6P];Anmerkung
Geben Sie aus Sicherheitsgründen ein anderes Passwort als hier angegeben an.