sp_addrole (Transact-SQL)
Gilt für: SQL Server
Erstellt eine neue Datenbankrolle in der aktuellen Datenbank.
Wichtig
sp_addrole
ist aus Gründen der Kompatibilität mit früheren Versionen von SQL Server enthalten und wird in einer zukünftigen Version möglicherweise nicht unterstützt. Verwenden Sie stattdessen CREATE ROLE .
Transact-SQL-Syntaxkonventionen
Syntax
sp_addrole
[ @rolename = ] N'rolename'
[ , [ @ownername = ] N'ownername' ]
[ ; ]
Argumente
[ @rolename = ] N'rolename'
Der Name der neuen Datenbankrolle. @rolename ist "sysname" ohne Standard. @rolename muss ein gültiger Bezeichner sein und darf nicht bereits in der aktuellen Datenbank vorhanden sein.
[ @ownername = ] N'ownername'
Der Besitzer der neuen Datenbankrolle. @ownername ist "sysname" mit einem Standardwert des aktuellen ausgeführten Benutzers. @ownername muss ein Datenbankbenutzer oder eine Datenbankrolle in der aktuellen Datenbank sein.
Rückgabecodewerte
0
(erfolgreich) oder 1
Fehler.
Hinweise
Die Namen von SQL Server-Datenbankrollen können zwischen 1 und 128 Zeichen enthalten, einschließlich Buchstaben, Symbolen und Zahlen. Die Namen von Datenbankrollen dürfen kein umgekehrtes Schrägstrichzeichen (), ein leeres NULL
Zeichen (\
) oder eine leere Zeichenfolge (''
) enthalten.
Nachdem Sie eine Datenbankrolle hinzugefügt haben, verwenden Sie sp_addrolemember , um der Rolle Prinzipale hinzuzufügen. Wenn GRANT
, DENY
oder REVOKE
Anweisungen verwendet werden, um Berechtigungen auf die Datenbankrolle anzuwenden, erben Mitglieder der Datenbankrolle diese Berechtigungen, als ob die Berechtigungen direkt auf ihre Konten angewendet wurden.
Hinweis
Neue Serverrollen können nicht erstellt werden. Rollen können nur auf der Datenbankebene erstellt werden.
sp_addrole
kann nicht innerhalb einer benutzerdefinierten Transaktion verwendet werden.
Berechtigungen
Erfordert die CREATE ROLE
-Berechtigung für die Datenbank. Wenn Sie ein Schema erstellen, ist dies für die Datenbank erforderlich CREATE SCHEMA
. Wenn @ownername als Benutzer oder Gruppe angegeben ist, ist für diesen Benutzer oder diese Gruppe erforderlich IMPERSONATE
. Wenn @ownername als Rolle angegeben ist, ist die Berechtigung für diese Rolle oder für ein Mitglied dieser Rolle erforderlich ALTER
. Wenn der Besitzer als Anwendungsrolle angegeben ist, ist die Berechtigung für diese Anwendungsrolle erforderlich ALTER
.
Beispiele
Im folgenden Beispiel wird der aktuellen Datenbank die neue Rolle Managers
hinzugefügt.
EXEC sp_addrole 'Managers';