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.
Um sich bei einer Instanz von Microsoft SQL Server anzumelden, muss ein Prinzipal über einen gültigen SQL Server-Login verfügen. Diese Anmeldung wird im Authentifizierungsprozess verwendet, der überprüft, ob der Benutzer berechtigt ist, eine Verbindung mit der SQL Server-Instanz herzustellen. Die SQL Server-Anmeldungen in einer Serverinstanz sind in der sys.server_principals Katalogansicht und in der Kompatibilitätsansicht "sys.syslogins " sichtbar.
SQL Server-Anmeldungen greifen mithilfe eines Datenbankbenutzers, der der SQL Server-Anmeldung zugeordnet ist, auf einzelne Datenbanken zu. Es gibt zwei Ausnahmen für diese Regel:
Das Gastkonto.
Dies ist ein Konto, das, wenn es in der Datenbank aktiviert ist, SQL Server-Anmeldungen ermöglicht, die keinem Datenbankbenutzer zugeordnet sind, auf die Datenbank als Gastbenutzer zuzugreifen.
Microsoft Windows-Gruppenmitgliedschaften.
Ein von einem Windows-Benutzer erstellter SQL Server -Anmeldename kann eine Datenbank verwenden, wenn der Windows-Benutzer Mitglied einer Windows-Gruppe ist, die auch ein Benutzer der Datenbank ist.
Die Informationen für die Zuordnung eines SQL Server -Anmeldenamens zu einem Datenbankbenutzer werden in der Datenbank gespeichert. Hierzu zählen der Name des Datenbankbenutzers sowie die Sicherheits-ID (SID) des entsprechenden SQL Server -Anmeldenamens. Die Berechtigungen dieses Datenbankbenutzers werden für die Autorisierung in der Datenbank verwendet.
Ein Datenbankbenutzer, für den die entsprechende SQL Server-Anmeldung nicht definiert ist oder in einer Serverinstanz falsch definiert ist, kann sich nicht bei der Instanz anmelden. Diese Benutzer werden als verwaiste Benutzer der Datenbank dieser Serverinstanz bezeichnet. Ein Datenbankbenutzer kann verwaist werden, wenn die entsprechende SQL Server-Anmeldung gelöscht wird. Außerdem kann ein Datenbankbenutzer verwaist werden, nachdem eine Datenbank wiederhergestellt oder an eine andere Instanz von SQL Server angefügt wurde. Verwaisung kann auftreten, wenn der Datenbankbenutzer einer SID zugeordnet ist, die in der neuen Server-Instanz nicht vorhanden ist.
Hinweis
Eine SQL Server-Anmeldung kann nicht auf eine Datenbank zugreifen, in der kein entsprechender Datenbankbenutzer vorhanden ist, es sei denn, der Gast ist in dieser Datenbank aktiviert. Informationen zum Erstellen eines Datenbankbenutzerkontos finden Sie unter CREATE USER (Transact-SQL).
So erkennen Sie verwaiste Benutzer
Führen Sie die folgenden Transact-SQL Anweisungen aus, um verwaiste Benutzer zu erkennen:
USE <database_name>;
GO;
sp_change_users_login @Action='Report';
GO;
Die Ausgabe listet die Benutzer und die entsprechenden Sicherheitsbezeichner (SID) in der aktuellen Datenbank auf, die nicht mit einer SQL Server-Anmeldung verknüpft sind. Weitere Informationen finden Sie unter sp_change_users_login (Transact-SQL).
Hinweis
sp_change_users_login können nicht mit SQL Server-Anmeldungen verwendet werden, die von Windows erstellt werden.
So lösen Sie einen verwaisten Benutzer
Verwenden Sie zum Auflösen eines verwaisten Benutzers das folgende Verfahren:
Mit dem folgenden Befehl wird das serveranmeldungskonto neu verknüpft, das durch <login_name> mit dem durch <database_user> angegebenen Datenbankbenutzer angegeben wurde.
USE <database_name>; GO sp_change_users_login @Action='update_one', @UserNamePattern='<database_user>', @LoginName='<login_name>'; GOWeitere Informationen finden Sie unter sp_change_users_login (Transact-SQL).
Nachdem Sie den Code im vorherigen Schritt ausgeführt haben, kann der Benutzer auf die Datenbank zugreifen. Der Benutzer kann dann das Kennwort des <login_name> Anmeldekontos mithilfe der gespeicherten sp_password Prozedur wie folgt ändern:
USE master GO sp_password @old=NULL, @new='password', @loginame='<login_name>'; GOVon Bedeutung
Nur Anmeldungen mit der BERECHTIGUNG ALTER ANY LOGIN können das Kennwort der Anmeldung eines anderen Benutzers ändern. Allerdings können die Kennwörter von Mitgliedern der sysadmin -Rolle nur von Mitgliedern der sysadmin -Rolle geändert werden.
Hinweis
sp_password können nicht für Microsoft Windows-Konten verwendet werden. Benutzer, die über ihr Windows-Netzwerkkonto eine Verbindung mit einer INSTANZ von SQL Server herstellen, werden von Windows authentifiziert; daher können ihre Kennwörter nur in Windows geändert werden.
Weitere Informationen finden Sie unter sp_password (Transact-SQL).
Siehe auch
BENUTZER ERSTELLEN (Transact-SQL)
LOGIN ERSTELLEN (Transact-SQL)
sp_change_users_login (Transact-SQL)
sp_addlogin (Transact-SQL)
sp_grantlogin (Transact-SQL)
sp_password (Transact-SQL)
sys.sysusers (Transact-SQL)
sys.syslogins (Transact-SQL)