sp_addrolemember (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
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. Verwenden Sie sp_addsrvrolemember (Transact-SQL), um einer Serverrolle ein Mitglied hinzuzufügen.
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 ROLE
Berechtigung oderALTER
Berechtigung 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 AdventureWorks2022
Datenbank als Benutzer Mary5
hinzugefügt. Der Benutzer Mary5
wird dann der Production
-Rolle hinzugefügt.
Da Contoso\Mary5
als Datenbankbenutzer Mary5
in der AdventureWorks2022
-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.
EXEC sp_addrolemember 'Production', 'Mary5';
Beispiele: Analytics-Plattformsystem (PDW)
C. Hinzufügen einer Windows-Anmeldung
Im folgenden Beispiel wird der Datenbank als Benutzer UserMary
die Anmeldung LoginMary
AdventureWorks2022
hinzugefügt. Der Benutzer UserMary
wird dann der Production
-Rolle hinzugefügt.
Hinweis
Da die Anmeldung LoginMary
als Datenbankbenutzer UserMary
in der AdventureWorks2022
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
EXEC 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.
EXEC sp_addrolemember 'Production', 'UserMary'