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.
Gilt für:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-Datenbank in Microsoft Fabric
Fügt einer Datenbankrolle in der aktuellen Datenbank einen Datenbankbenutzer, eine Datenbankrolle, einen Windows-Anmeldenamen oder eine Windows-Gruppe hinzu.
Wichtig
Diese Funktion wird in einer zukünftigen Version von SQL Serverentfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden. Verwenden Sie stattdessen ALTER ROLE .
Transact-SQL-Syntaxkonventionen
Syntax
sp_addrolemember
[ @rolename = ] N'rolename'
, [ @membername = ] N'membername'
[ ; ]
Hinweis
Diese Syntax wird vom serverlosen SQL-Pool in Azure Synapse Analytics nicht unterstützt.
Argumente
[ @rolename = ] N'rolename'
Der Name der Datenbankrolle in der aktuellen Datenbank. @rolename ist "sysname" ohne Standard.
[ @membername = ] N'membername'
Das Sicherheitskonto, das der Rolle hinzugefügt wird. @membername ist "sysname" ohne Standard. @membername kann ein Datenbankbenutzer, eine Datenbankrolle, eine Windows-Anmeldung oder eine Windows-Gruppe sein.
Rückgabecodewerte
0 (erfolgreich) oder 1 Fehler.
Hinweise
Ein Mitglied, das einer Rolle hinzugefügt wird, erbt sp_addrolemember die Berechtigungen der Rolle. Wenn das neue Mitglied ein Prinzipal auf Windows-Ebene ohne einen entsprechenden Datenbankbenutzer ist, wird ein Datenbankbenutzer erstellt, aber möglicherweise nicht vollständig der Anmeldung zugeordnet. Überprüfen Sie stets, ob die Anmeldung vorhanden ist und Zugriff auf die Datenbank hat.
Eine Rolle kann sich nicht als Mitglied einschließen. Solche Zirkeldefinitionen sind nicht gültig, auch wenn die Mitgliedschaft indirekt durch eine oder mehrere Zwischenmitgliedschaften impliziert wird.
sp_addrolemember einer Rolle kann keine feste Datenbankrolle, eine feste Serverrolle oder ein Dbo hinzugefügt werden.
sp_addrolemember Dient nur zum Hinzufügen eines Mitglieds zu einer Datenbankrolle. Zum Hinzufügen eines Mitglieds zu einer Serverrolle verwenden Sie sp_addsrvrolemember.
Berechtigungen
Das Hinzufügen von Mitgliedern zu flexiblen Datenbankrollen erfordert eine der folgenden Berechtigungen:
Mitgliedschaft in der db_securityadmin - oder db_owner festen Datenbankrolle.
Mitgliedschaft in der Rolle, die die Rolle besitzt.
ALTER ANY ROLEBerechtigung oderALTERBerechtigung für die Rolle.
Das Hinzufügen von Mitgliedern zu festen Datenbankrollen erfordert die Mitgliedschaft in der db_owner festen Datenbankrolle.
Beispiele
A. Hinzufügen einer Windows-Anmeldung
Im folgenden Beispiel wird die Windows-Anmeldung Contoso\Mary5 der AdventureWorks2025 Datenbank als Benutzer Mary5hinzugefügt. Der Benutzer Mary5 wird dann der Production-Rolle hinzugefügt.
Da Contoso\Mary5 als Datenbankbenutzer Mary5 in der AdventureWorks2025-Datenbank bekannt ist, muss der Benutzername Mary5 angegeben werden. Die Anweisung schlägt fehl, es sei denn, eine Contoso\Mary5 Anmeldung ist vorhanden. Testen Sie dies, indem Sie einen Anmeldenamen Ihrer Domäne verwenden.
USE AdventureWorks2022;
GO
CREATE USER Mary5 FOR LOGIN [Contoso\Mary5];
GO
B. Hinzufügen eines Datenbankbenutzers
Im folgenden Beispiel wird der Datenbankbenutzer Mary5 der Production-Datenbankrolle in der aktuellen Datenbank hinzugefügt.
EXECUTE sp_addrolemember 'Production', 'Mary5';
Beispiele: Analytics-Plattformsystem (PDW)
C. Hinzufügen einer Windows-Anmeldung
Im folgenden Beispiel wird der Datenbank als Benutzer LoginMarydie Anmeldung AdventureWorks2025UserMary hinzugefügt. Der Benutzer UserMary wird dann der Production-Rolle hinzugefügt.
Hinweis
Da die Anmeldung LoginMary als Datenbankbenutzer UserMary in der AdventureWorks2025 Datenbank bezeichnet wird, muss der Benutzername UserMary angegeben werden. Die Anweisung führt zu einem Fehler, es sei denn, es ist ein Anmeldename Mary5 vorhanden. Anmeldungen und Benutzer haben in der Regel denselben Namen. In diesem Beispiel werden verschiedene Namen verwendet, um die Aktionen zu unterscheiden, die sich auf die Anmeldung und den Benutzer auswirken.
-- Uses AdventureWorks2022
CREATE USER UserMary FOR LOGIN LoginMary;
GO
EXECUTE sp_addrolemember 'Production', 'UserMary';
D: Hinzufügen eines Datenbankbenutzers
Im folgenden Beispiel wird der Datenbankbenutzer UserMary der Production-Datenbankrolle in der aktuellen Datenbank hinzugefügt.
EXECUTE sp_addrolemember 'Production', 'UserMary';