Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ursprüngliche Produktversion: SQL Server
Ursprüngliche KB-Nummer: 918992, 246133
Zusammenfassung
In diesem Artikel wird gezeigt, wie Sie SQL Server Anmeldungen und Kennwörter zwischen Instanzen von Microsoft SQL Server übertragen, die auf Windows ausgeführt werden. Verwenden Sie diese Verfahren während SQL Server Migrations-, Wiederherstellungs- oder Hochverfügbarkeitsszenarien, um die Benutzerauthentifizierung intakt zu halten und verwaiste Datenbankbenutzer in der Zielinstanz zu vermeiden. Die Quell- und Zielinstanzen können sich auf demselben Server oder auf verschiedenen Servern befinden, und ihre Versionen können unterschiedlich sein.
Gründe für die Übertragung von Anmeldungen zwischen SQL Server Instanzen
Wenn Sie eine Datenbank z. B. während einer Migration oder Wiederherstellung auf einen neuen Server verschieben, verschieben sich die Datenbankbenutzer mit der Datenbank, aber die entsprechenden Anmeldeinformationen auf Serverebene sind in der neuen Instanz möglicherweise nicht vorhanden. Dieser Konflikt erzeugt verwaiste Benutzer. Durch das Übertragen von Anmeldungen und Kennwörtern bleibt die Benutzerauthentifizierung erhalten und verhindert Anmeldeunterbrechungen nach dem Verschieben der Datenbank.
Nachdem Sie eine Datenbank von einer SQL Server-Instanz auf Server A in eine SQL Server-Instanz auf Server B verschoben haben, können sich Benutzer möglicherweise nicht auf dem Datenbankserver auf Server B anmelden. Darüber hinaus erhalten Benutzer möglicherweise die folgende Fehlermeldung:
Anmeldung für den Benutzer „MyUser“ fehlgeschlagen. (Microsoft SQL Server, Fehler: 18456)
Dieses Problem tritt auf, da die Anmeldungen aus der SQL Server-Instanz auf Server A in der SQL Server-Instanz auf Server B nicht vorhanden sind.
Fehler 18456 kann auch aus mehreren anderen Gründen auftreten. Weitere Informationen zu den verschiedenen Ursachen und deren Auflösungen finden Sie unter MSSQLSERVER_18456.
Methoden zum Übertragen von Anmeldungen zwischen SQL Server Instanzen
Um Anmeldungen zu übertragen, verwenden Sie eine der folgenden Methoden, wie sie für Ihre Situation geeignet sind.
Anmeldeskripte in SSMS generieren und Kennwörter auf dem Zielsystem zurücksetzen
Sie können Anmeldeskripts in SQL Server Management Studio (SSMS) mithilfe der Option "Skripts generieren" für eine Datenbank generieren.
Führen Sie die folgenden Schritte aus, um Skripts über SSMS auf dem Quellserver zu generieren und Kennwörter für SQL Server-Anmeldungen auf dem Zielserver manuell zurückzusetzen:
Stellen Sie eine Verbindung mit Dem Server A her, der die SQL Server-Quelle hosten soll.
Erweitern Sie den Knoten Datenbanken.
Wählen Sie eine beliebige Benutzerdatenbank aus, halten Sie sie gedrückt (oder klicken Sie mit der rechten Maustaste darauf), und wählen Sie dann "Tasks>Generate Scripts" aus.
Die Seite Einführung wird geöffnet. Wählen Sie "Weiter" aus, um die Seite "Objekte auswählen" zu öffnen. Wählen Sie Gesamte Datenbank und alle Datenbankobjekte skripten aus.
Wählen Sie Weiter aus, um die Seite Skripterstellungsoptionen festlegen zu öffnen.
Wählen Sie die Schaltfläche "Erweitert " für Skriptanmeldeoptionen aus.
Suchen Sie in der Erweitert-Liste nach Skriptanmeldungen, setzen Sie die Option auf True, und wählen Sie OK aus.
Kehren Sie zu Scriptoptionen festlegen zurück, und wählen Sie unter Auswählen, wie Skripts gespeichert werden die Option Im neuen Abfragefenster öffnen aus.
Wählen Sie zweimal "Weiter" und dann " Fertig stellen" aus.
Suchen Sie den Abschnitt im Skript, das Anmeldeinformationen enthält. In der Regel enthält das generierte Skript Text mit dem folgenden Kommentar am Anfang dieses Abschnitts:
/* For security reasons the login is created disabled and with a random password. */Notiz
Dieser Kommentar gibt an, dass SQL Server-Authentifizierungsanmeldungen mit einem zufälligen Kennwort generiert werden und standardmäßig deaktiviert sind. Sie müssen das Kennwort zurücksetzen und diese Anmeldeinformationen auf dem Zielserver erneut aktivieren.
Wenden Sie das Anmeldeskript aus dem umfangreicheren generierten Skript auf den Ziel-SQL-Server an.
Setzen Sie für alle SQL Server-Authentifizierungsanmeldungen das Kennwort auf dem Ziel-SQL Server zurück, und aktivieren Sie diese Anmeldungen erneut.
Übertragen von Anmeldungen und Kennwörtern mithilfe von sp_help_revlogin
Erstellen Sie gespeicherte Prozeduren, mit denen erforderliche Skripts generiert werden, um Anmeldeinformationen und deren Kennwörter zu übertragen. Stellen Sie dazu eine Verbindung mit Server A mithilfe von SQL Server Management Studio (SSMS) oder einem anderen Clienttool her, und führen Sie das folgende Skript aus:
USE [master] GO IF OBJECT_ID('dbo.sp_hexadecimal') IS NOT NULL DROP PROCEDURE dbo.sp_hexadecimal GO CREATE PROCEDURE dbo.sp_hexadecimal @binvalue [varbinary](256) ,@hexvalue [nvarchar] (514) OUTPUT AS BEGIN DECLARE @i [smallint] DECLARE @length [smallint] DECLARE @hexstring [nchar](16) SELECT @hexvalue = N'0x' SELECT @i = 1 SELECT @length = DATALENGTH(@binvalue) SELECT @hexstring = N'0123456789ABCDEF' WHILE (@i < = @length) BEGIN DECLARE @tempint [smallint] DECLARE @firstint [smallint] DECLARE @secondint [smallint] SELECT @tempint = CONVERT([smallint], SUBSTRING(@binvalue, @i, 1)) SELECT @firstint = FLOOR(@tempint / 16) SELECT @secondint = @tempint - (@firstint * 16) SELECT @hexvalue = @hexvalue + SUBSTRING(@hexstring, @firstint + 1, 1) + SUBSTRING(@hexstring, @secondint + 1, 1) SELECT @i = @i + 1 END END GO IF OBJECT_ID('dbo.sp_help_revlogin') IS NOT NULL DROP PROCEDURE dbo.sp_help_revlogin GO CREATE PROCEDURE dbo.sp_help_revlogin @login_name [sysname] = NULL AS BEGIN DECLARE @name [sysname] DECLARE @type [nvarchar](1) DECLARE @hasaccess [int] DECLARE @denylogin [int] DECLARE @is_disabled [int] DECLARE @PWD_varbinary [varbinary](256) DECLARE @PWD_string [nvarchar](514) DECLARE @SID_varbinary [varbinary](85) DECLARE @SID_string [nvarchar](514) DECLARE @tmpstr [nvarchar](4000) DECLARE @is_policy_checked [nvarchar](3) DECLARE @is_expiration_checked [nvarchar](3) DECLARE @Prefix [nvarchar](4000) DECLARE @defaultdb [sysname] DECLARE @defaultlanguage [sysname] DECLARE @tmpstrRole [nvarchar](4000) IF @login_name IS NULL BEGIN DECLARE login_curs CURSOR FOR SELECT p.[sid],p.[name],p.[type],p.is_disabled,p.default_database_name,l.hasaccess,l.denylogin,default_language_name = ISNULL(p.default_language_name,@@LANGUAGE) FROM sys.server_principals p LEFT JOIN sys.syslogins l ON l.[name] = p.[name] WHERE p.[type] IN ('S' /* SQL_LOGIN */,'G' /* WINDOWS_GROUP */,'U' /* WINDOWS_LOGIN */) AND p.[name] <> 'sa' AND p.[name] not like '##%' ORDER BY p.[name] END ELSE DECLARE login_curs CURSOR FOR SELECT p.[sid],p.[name],p.[type],p.is_disabled,p.default_database_name,l.hasaccess,l.denylogin,default_language_name = ISNULL(p.default_language_name,@@LANGUAGE) FROM sys.server_principals p LEFT JOIN sys.syslogins l ON l.[name] = p.[name] WHERE p.[type] IN ('S' /* SQL_LOGIN */,'G' /* WINDOWS_GROUP */,'U' /* WINDOWS_LOGIN */) AND p.[name] <> 'sa' AND p.[name] NOT LIKE '##%' AND p.[name] = @login_name ORDER BY p.[name] OPEN login_curs FETCH NEXT FROM login_curs INTO @SID_varbinary,@name,@type,@is_disabled,@defaultdb,@hasaccess,@denylogin,@defaultlanguage IF (@@fetch_status = - 1) BEGIN PRINT '/* No login(s) found for ' + QUOTENAME(@login_name) + N'. */' CLOSE login_curs DEALLOCATE login_curs RETURN - 1 END SET @tmpstr = N'/* sp_help_revlogin script ** Generated ' + CONVERT([nvarchar], GETDATE()) + N' on ' + @@SERVERNAME + N' */' PRINT @tmpstr WHILE (@@fetch_status <> - 1) BEGIN IF (@@fetch_status <> - 2) BEGIN PRINT '' SET @tmpstr = N'/* Login ' + QUOTENAME(@name) + N' */' PRINT @tmpstr SET @tmpstr = N'IF NOT EXISTS ( SELECT 1 FROM sys.server_principals WHERE [name] = N''' + @name + N''' ) BEGIN' PRINT @tmpstr IF @type IN ('G','U') -- NT-authenticated Group/User BEGIN -- NT authenticated account/group SET @tmpstr = N' CREATE LOGIN ' + QUOTENAME(@name) + N' FROM WINDOWS WITH DEFAULT_DATABASE = ' + QUOTENAME(@defaultdb) + N' ,DEFAULT_LANGUAGE = ' + QUOTENAME(@defaultlanguage) END ELSE BEGIN -- SQL Server authentication -- obtain password and sid SET @PWD_varbinary = CAST(LOGINPROPERTY(@name, 'PasswordHash') AS [varbinary](256)) EXEC dbo.sp_hexadecimal @PWD_varbinary, @PWD_string OUT EXEC dbo.sp_hexadecimal @SID_varbinary, @SID_string OUT -- obtain password policy state SELECT @is_policy_checked = CASE is_policy_checked WHEN 1 THEN 'ON' WHEN 0 THEN 'OFF' ELSE NULL END FROM sys.sql_logins WHERE [name] = @name SELECT @is_expiration_checked = CASE is_expiration_checked WHEN 1 THEN 'ON' WHEN 0 THEN 'OFF' ELSE NULL END FROM sys.sql_logins WHERE [name] = @name SET @tmpstr = NCHAR(9) + N'CREATE LOGIN ' + QUOTENAME(@name) + N' WITH PASSWORD = ' + @PWD_string + N' HASHED ,SID = ' + @SID_string + N' ,DEFAULT_DATABASE = ' + QUOTENAME(@defaultdb) + N' ,DEFAULT_LANGUAGE = ' + QUOTENAME(@defaultlanguage) IF @is_policy_checked IS NOT NULL BEGIN SET @tmpstr = @tmpstr + N' ,CHECK_POLICY = ' + @is_policy_checked END IF @is_expiration_checked IS NOT NULL BEGIN SET @tmpstr = @tmpstr + N' ,CHECK_EXPIRATION = ' + @is_expiration_checked END END IF (@denylogin = 1) BEGIN -- login is denied access SET @tmpstr = @tmpstr + NCHAR(13) + NCHAR(10) + NCHAR(9) + N'' + NCHAR(13) + NCHAR(10) + NCHAR(9) + N'DENY CONNECT SQL TO ' + QUOTENAME(@name) END ELSE IF (@hasaccess = 0) BEGIN -- login exists but does not have access SET @tmpstr = @tmpstr + NCHAR(13) + NCHAR(10) + NCHAR(9) + N'' + NCHAR(13) + NCHAR(10) + NCHAR(9) + N'REVOKE CONNECT SQL TO ' + QUOTENAME(@name) END IF (@is_disabled = 1) BEGIN -- login is disabled SET @tmpstr = @tmpstr + NCHAR(13) + NCHAR(10) + NCHAR(9) + N'' + NCHAR(13) + NCHAR(10) + NCHAR(9) + N'ALTER LOGIN ' + QUOTENAME(@name) + N' DISABLE' END SET @Prefix = NCHAR(13) + NCHAR(10) + NCHAR(9) + N'' + NCHAR(13) + NCHAR(10) + NCHAR(9) + N'EXEC [master].dbo.sp_addsrvrolemember @loginame = N''' SET @tmpstrRole = N'' SELECT @tmpstrRole = @tmpstrRole + CASE WHEN sysadmin = 1 THEN @Prefix + LoginName + N''', @rolename = N''sysadmin''' ELSE '' END + CASE WHEN securityadmin = 1 THEN @Prefix + LoginName + N''', @rolename = N''securityadmin''' ELSE '' END + CASE WHEN serveradmin = 1 THEN @Prefix + LoginName + N''', @rolename = N''serveradmin''' ELSE '' END + CASE WHEN setupadmin = 1 THEN @Prefix + LoginName + N''', @rolename = N''setupadmin''' ELSE '' END + CASE WHEN processadmin = 1 THEN @Prefix + LoginName + N''', @rolename = N''processadmin''' ELSE '' END + CASE WHEN diskadmin = 1 THEN @Prefix + LoginName + N''', @rolename = N''diskadmin''' ELSE '' END + CASE WHEN dbcreator = 1 THEN @Prefix + LoginName + N''', @rolename = N''dbcreator''' ELSE '' END + CASE WHEN bulkadmin = 1 THEN @Prefix + LoginName + N''', @rolename = N''bulkadmin''' ELSE '' END FROM ( SELECT SUSER_SNAME([sid])AS LoginName ,sysadmin ,securityadmin ,serveradmin ,setupadmin ,processadmin ,diskadmin ,dbcreator ,bulkadmin FROM sys.syslogins WHERE ( sysadmin <> 0 OR securityadmin <> 0 OR serveradmin <> 0 OR setupadmin <> 0 OR processadmin <> 0 OR diskadmin <> 0 OR dbcreator <> 0 OR bulkadmin <> 0 ) AND [name] = @name ) L IF @tmpstr <> '' PRINT @tmpstr IF @tmpstrRole <> '' PRINT @tmpstrRole PRINT 'END' END FETCH NEXT FROM login_curs INTO @SID_varbinary,@name,@type,@is_disabled,@defaultdb,@hasaccess,@denylogin,@defaultlanguage END CLOSE login_curs DEALLOCATE login_curs RETURN 0 ENDNotiz
Dieses Skript erstellt zwei gespeicherte Prozeduren in der Masterdatenbank. Die Prozeduren werden sp_hexadecimal und sp_help_revlogin genannt.
Wählen Sie im SSMS-Abfrage-Editor die Option "Ergebnisse zu Text " aus.
Führen Sie die folgende Anweisung in demselben oder einem neuen Abfragefenster aus:
EXEC sp_help_revloginDas Ausgabeskript, das von der
sp_help_revlogingespeicherten Prozedur generiert wird, ist das Anmeldeskript. Dieses Anmeldeskript erstellt die Anmeldungen mit der ursprünglichen Sicherheits-ID (SID) und dem ursprünglichen Kennwort.Überprüfen und befolgen Sie die Informationen im Abschnitt Zusätzliche Überlegungen beim Übertragen von SQL Server-Anmeldeinformationen, bevor Sie mit den Implementierungsschritten auf dem Zielserver fortfahren.
Nachdem Sie alle anwendbaren Schritte aus den zusätzlichen Überlegungen beim Übertragen SQL Server Anmeldeabschnitts ausgeführt haben, stellen Sie mithilfe eines beliebigen Clienttools (z. B. SSMS) eine Verbindung mit dem Zielserver B her.
Führen Sie das Skript aus, das als Ausgabe von
sp_helprevloginvon Server A generiert wurde.
Zusätzliche Überlegungen beim Übertragen von SQL Server-Anmeldungen
Lesen Sie die folgenden Informationen, bevor Sie das Ausgabeskript auf der Instanz auf Server B ausführen:
Einführung in das Passworthashing bei SQL Server-Anmeldeübertragungen
SQL Server hasht Kennwörter auf folgende Weise:
-
VERSION_SHA1: Verwendet den SHA1-Algorithmus. SQL Server 2000 bis SQL Server 2008 R2 verwenden Sie diesen Hash. Diese Versionen werden weder im Mainstream- noch im erweiterten Support unterstützt, daher sollten IhnenVERSION_SHA1-Hashes nur bei der Migration weg von Legacy-Instanzen begegnen. -
VERSION_SHA2: Verwendet den SHA2-512-Algorithmus. SQL Server 2012 und höher, einschließlich derzeit unterstützter Versionen, verwenden Sie diesen Hash.
Das Ausgabeskript erstellt die Anmeldungen mithilfe des verschlüsselten Kennworts. Das HASHED Argument in der CREATE LOGIN-Anweisung verursacht dieses Verhalten. Dieses Argument gibt an, dass das kennwort, das nach dem PASSWORD Argument eingegeben wurde, bereits hashed ist.
Behandeln von Domänenänderungen während SQL Server-Anmeldeübertragungen
Wenn sich Die Quell- und Zielserver in verschiedenen Domänen befinden, überprüfen Sie das Ausgabeskript sorgfältig. Ändern Sie das Skript, um den ursprünglichen Domänennamen durch den neuen Domänennamen in den CREATE LOGIN Anweisungen zu ersetzen. Integrierte Anmeldungen, die Zugriff auf die neue Domäne gewährt haben, teilen nicht dieselbe SID wie die Anmeldungen in der ursprünglichen Domäne, sodass Benutzer von diesen Anmeldungen verwaist werden. Informationen zum Beheben verwaister Benutzer finden Sie unter Problembehandlung für verwaiste Benutzer (SQL Server) und ALTER USER.
Wenn sich Server A und Server B in derselben Domäne befinden, wird dieselbe SID verwendet. Daher sind Benutzer nicht verwaist.
Erforderliche Berechtigungen zum Anzeigen und Auswählen von SQL Server-Anmeldungen
Standardmäßig können nur Mitglieder der festen Serverrolle "sysadmin " eine SELECT Anweisung für die sys.server_principals Ansicht ausführen. Sofern kein Sysadmin anderen Benutzern die erforderlichen Berechtigungen erteilt, können diese Benutzer das Ausgabeskript nicht erstellen oder ausführen.
Die Standarddatenbankeinstellung ist nicht skriptiert und wird übertragen.
Die Schritte in diesem Artikel übertragen nicht die Standarddatenbankinformationen für eine bestimmte Anmeldung. Diese Einschränkung ist vorhanden, da die Standarddatenbank möglicherweise nicht immer auf Server B vorhanden ist. Um die Standarddatenbank für eine Anmeldung zu definieren, verwenden Sie die ALTER LOGIN-Anweisung , indem Sie den Anmeldenamen und die Standarddatenbank als Argumente übergeben.
Verwalten von Sortierreihenfolgenunterschieden bei SQL Server-Anmeldeübertragungen
Die Quell- und Zielserver verfügen möglicherweise über unterschiedliche Sortierreihenfolgen, oder sie verwenden die gleiche Sortierreihenfolge. Hier erfahren Sie, wie Sie jedes Szenario behandeln können:
Server A (nicht beachtete Groß-/Kleinschreibung) und Server B (beachtete Groß-/Kleinschreibung): Bei der Sortierreihenfolge von Server A wird die Groß-/Kleinschreibung nicht beachtet, und bei der Sortierreihenfolge von Server B wird die Groß-/Kleinschreibung beachtet. In diesem Fall müssen Benutzer die Kennwörter in Großbuchstaben eingeben, nachdem Sie die Anmeldungen und Kennwörter in die Instanz auf Server B übertragen haben.
Server A mit Beachtung der Groß-/Kleinschreibung und Server B ohne Beachtung der Groß-/Kleinschreibung: Bei der Sortierreihenfolge von Server A wird die Groß-/Kleinschreibung beachtet, und bei der Sortierreihenfolge von Server B wird die Groß-/Kleinschreibung nicht beachtet. In diesem Fall können sich Benutzer nicht mit den Anmeldeinformationen und den Kennwörtern anmelden, die Sie auf die Instanz auf Server B übertragen, es sei denn, eine der folgenden Bedingungen gilt:
- Die ursprünglichen Kennwörter enthalten keine Buchstaben.
- Alle Buchstaben in den ursprünglichen Kennwörtern sind Großbuchstaben.
Groß-/Kleinschreibungssensitiv auf beiden Servern: Die Sortierreihenfolge von Server A und Server B ist entweder groß-/kleinschreibungssensitiv oder die Sortierreihenfolge von Server A und Server B ist groß-/kleinschreibungsunsensitiv. In diesen Fällen treten keine Probleme auf.
Beheben von Konflikten mit vorhandenen Anmeldungen auf dem Zielserver
Das Skript überprüft, ob die Anmeldung auf dem Zielserver vorhanden ist, und erstellt nur dann eine Anmeldung, wenn sie nicht vorhanden ist. Wenn Sie jedoch die folgende Fehlermeldung erhalten, wenn Sie das Ausgabeskript auf der Instanz auf Server B ausführen, müssen Sie den Konflikt manuell beheben, indem Sie die Schritte in diesem Abschnitt ausführen.
Meldung 15025, Ebene 16, Status 1, Zeile 1
Der Serverprinzipal MyLogin ist bereits vorhanden.
Ebenso kann eine Anmeldung, die sich bereits in der Instanz auf Server B befindet, über eine SID verfügen, die mit einer SID im Ausgabeskript identisch ist. In diesem Fall erhalten Sie die folgende Fehlermeldung, wenn Sie das Ausgabeskript in der Instanz auf Server B ausführen:
Meldung 15433, Ebene 16, Status 1, Zeile 1 Der Parameter „sid“ wird verwendet.
Führen Sie die folgenden Schritte aus, um den Konflikt manuell zu beheben:
- Überprüfen Sie das Ausgabeskript sorgfältig.
- Überprüfen Sie den Inhalt der
sys.server_principalsAnsicht in der Instanz auf Server B. - Ergreifen Sie die entsprechende Aktion für jeden Fehler, z. B. das Ablegen oder Umbenennen der widersprüchlichen Anmeldung auf Server B, oder entfernen Sie die doppelte
CREATE LOGINAnweisung aus dem Ausgabeskript, bevor Sie sie erneut ausführen.
In SQL Server steuert die SID für eine Anmeldung den Zugriff auf Datenbankebene. Eine Anmeldung hat möglicherweise unterschiedliche SIDs, wenn sie Benutzern in verschiedenen Datenbanken zugeordnet ist, was passieren kann, wenn Sie Datenbanken von verschiedenen Servern manuell kombinieren. In diesem Fall kann das Login nur die Datenbank verwenden, in der die SID des Datenbankprinzipals mit der SID in der sys.server_principals-Ansicht übereinstimmt. Um dieses Problem zu beheben, legen Sie den Datenbankbenutzer ab, der über die nicht übereinstimmende SID verfügt, indem Sie die DROP USER-Anweisung verwenden. Fügen Sie dann den Benutzer erneut mit der CREATE USER Anweisung hinzu, und ordnen Sie ihn der richtigen Anmeldung (Serverprinzipal) zu.
Weitere Informationen zu Server- und Datenbankprinzipalen finden Sie unter CREATE USER und CREATE LOGIN.
Erweiterte Szenarien und Problembehandlung
Wenn nach der Übertragung von Anmeldungen weiterhin Anmeldefehler angezeigt werden, überprüfen Sie die folgenden Elemente:
-
Verwaiste Datenbankbenutzer: Führen Sie
sys.sp_change_users_login(veraltet) aus, oder verwenden SieALTER USER ... WITH LOGIN = ..., um Datenbankbenutzer den übertragenen Anmeldungen neu zuzuordnen. Weitere Informationen finden Sie unter Problembehandlung bei verwaisten Benutzer*innen (SQL Server). -
Enthaltene Datenbanken: Die Datenbank selbst speichert Anmeldeinformationen für Benutzer in einer enthaltenen Datenbank, damit sie damit navigieren. Sie müssen diese Benutzer nicht mit
sp_help_revloginübertragen. - AlwaysOn-Verfügbarkeitsgruppen und Failoverclusterinstanzen: Übertragen Sie Anmeldeinformationen an jedes Replikat oder jeden Knoten, damit sich Benutzer nach einem Failover anmelden können. Weitere Informationen finden Sie unter Verwalten von Anmeldungen für Aufträge, die Datenbanken in einer AlwaysOn-Verfügbarkeitsgruppe verwenden.
- Azure SQL Managed Instance und Azure SQL-Datenbank: Die Anmeldungsübertragung funktioniert in Azure anders. Siehe Migrieren von Anmeldungen zwischen SQL Server und SQL Managed Instance und Verwalten von Anmeldungen und Benutzern in Azure SQL-Datenbank.
- Anmeldefehler 18456: Weitere Ursachen und Korrekturen finden Sie unter MSSQLSERVER_18456.