sp_addrolemember (Transact-SQL)
Fügt einer Datenbankrolle in der aktuellen Datenbank einen Datenbankbenutzer, eine Datenbankrolle, einen Windows-Anmeldenamen oder eine Windows-Gruppe hinzu.
Transact-SQL-Syntaxkonventionen
Syntax
sp_addrolemember [ @rolename = ] 'role',
[ @membername = ] 'security_account'
Argumente
- [ @rolename = ] 'role'
Der Name der Datenbankrolle in der aktuellen Datenbank. role ist vom Datentyp sysname und hat keinen Standardwert.
- [ @membername = ] 'security_account'
Das Sicherheitskonto, das der Rolle hinzugefügt wird. security_account ist vom Datentyp sysname und hat keinen Standardwert. security_account kann ein Datenbankbenutzer, eine Datenbankrolle, ein Windows-Anmeldename oder eine Windows-Gruppe sein.
Rückgabecodewerte
0 (Erfolg) oder 1 (Fehler)
Hinweise
Ein Mitglied, das einer Rolle mithilfe von sp_addrolemember hinzugefügt wird, erbt die Berechtigungen der Rolle. Falls das neue Mitglied ein Prinzipal auf Windows-Ebene ohne einen entsprechenden Datenbankbenutzer ist, wird ein Datenbankbenutzer erstellt.
Eine Rolle kann sich selbst nicht als Mitglied enthalten. Diese ringförmigen Definitionen sind ungültig, auch wenn die Mitgliedschaft nur indirekt durch eine Zwischenmitgliedschaft impliziert ist.
sp_addrolemember kann einer Rolle keine feste Datenbankrolle, feste Serverrolle oder DBO hinzufügen. Vor SQL Server Serivce Pack 1 kann sp_addrolemember nicht in einer benutzerdefinierten Transaktion ausgeführt werden.
Verwenden Sie ausschließlich sp_addrolemember, um einer Datenbankrolle ein Mitglied hinzuzufügen. Verwenden Sie sp_addsrvrolemember (Transact-SQL), um einer festen Serverrolle ein Mitglied hinzuzufügen.
Fügen Sie keine flexiblen Rollen als Elemente fester Rollen hinzu. Dadurch könnte eine unbeabsichtigte Privilegausweitung aktiviert werden.
Berechtigungen
Zum Hinzufügen von Elementen zu flexiblen Datenbankrollen muss eine der folgenden Bedingungen erfüllt sein:
- Mitgliedschaft in der festen Datenbankrolle db_owner.
- Mitgliedschaft in der festen Datenbankrolle db_securityadmin.
- Mitgliedschaft in der Rolle, die die Rolle besitzt.
- ALTER-Berechtigung für die Rolle.
Das Hinzufügen von Elementen zu festen Datenbankrollen setzt die Mitgliedschaft in der festen Datenbankrolle db_owner voraus.
Beispiele
A. Hinzufügen eines Windows-Anmeldenamens
Im folgenden Beispiel wird der Windows-Anmeldename Contoso\Mary5
der Datenbank AdventureWorks
als Benutzer Mary5
hinzugefügt. Der Benutzer Production
wird dann der Rolle Mary5
hinzugefügt.
Hinweis: |
---|
Da Contoso\Mary5 als Datenbankbenutzer Mary5 in der AdventureWorks-Datenbank bekannt ist, muss der Benutzername Mary5 mithilfe von sp_addrolemember angegeben werden. |
USE AdventureWorks
GO
EXEC sp_grantdbaccess 'Contoso\Mary5', 'Mary5'
GO
EXEC sp_addrolemember 'Production', 'Mary5'
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'
Siehe auch
Verweis
Gespeicherte Sicherheitsprozeduren (Transact-SQL)
sp_addsrvrolemember (Transact-SQL)
sp_droprolemember (Transact-SQL)
sp_grantdbaccess (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)