Freigeben über


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 NULLZeichen (\) oder eine leere Zeichenfolge ('') enthalten.

Nachdem Sie eine Datenbankrolle hinzugefügt haben, verwenden Sie sp_addrolemember , um der Rolle Prinzipale hinzuzufügen. Wenn GRANT, DENYoder 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';