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 einer SQL Server-Read Replica
Es wird erwartet, dass alle Logins, benutzerdefinierten Serverrollen, SQL Agent-Jobs oder andere Objekte auf Serverebene, die zum Zeitpunkt der Erstellung einer Read Replica in der primären DB-Instance vorhanden sind, in der neu erstellten Read Replica 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 Read Replica-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 Logins in der Read Replica unbedingt sichergestellt werden, dass SID der Anmeldename mit dem entsprechenden SQL Anmeldenamen in SID der primären DB-Instance übereinstimmt. Wenn Sie die SIDs SQL Logins nicht synchronisieren, können sie nicht auf die Datenbank in der Read Replica zugreifen. Bei authentifizierten Windows Active Directory (AD) -Anmeldungen tritt dieses Problem nicht auf, da der SQL Server die Daten aus dem Active Directory bezieht. SID
Um eine SQL Anmeldung von der primären DB-Instance mit der Read Replica zu synchronisieren
-
Stellen Sie eine Verbindung mit der primären DB-Instance her.
-
Erstellen Sie ein neues SQL Login in der primären DB-Instance.
USE [master] GO CREATE LOGIN
TestLogin1
WITH 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 USERTestLogin1
FOR LOGINTestLogin1
; GO -
Überprüfen Sie den SID Namen des neu erstellten SQL Logins 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 das neue SQL Login.
CREATE LOGIN
TestLogin1
WITH 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 ein neues SQL Login für den verwaisten Datenbankbenutzer.
CREATE LOGIN
TestLogin1
WITH PASSWORD = 'REPLACE WITH PASSWORD
', SID=[REPLACE WITH sid FROM STEP #2
];Beispiel:
CREATE LOGIN
TestLogin1
WITH PASSWORD = 'TestPa$$word#1
', SID=[0x1A2B3C4D5E6F7G8H9I0J1K2L3M4N5O6P
];Anmerkung
Geben Sie aus Sicherheitsgründen ein anderes Passwort als hier angegeben an.