sys.sp_addrole (Transact-SQL)

Gäller för:SQL Server

Skapar en ny databasroll i den aktuella databasen.

Important

sp_addroleingår för kompatibilitet med tidigare versioner av SQL Server och kan saknas stöd i en framtida version. Använd CREATE ROLE i stället.

Transact-SQL syntaxkonventioner

Syntax

sys.sp_addrole
    [ @rolename = ] N'rolename'
    [ , [ @ownername = ] N'ownername' ]
[ ; ]

Arguments

[ @rolename = ] N'rollnamn'

Namnet på den nya databasrollen. @rolename är sysname, utan standard. @rolename måste vara en giltig identifierare och får inte redan finnas i den aktuella databasen.

[ @ownername = ] N'ägarnamn'

Ägaren till den nya databasrollen. @ownername är sysname, med standarden den nuvarande exekverande användaren. @ownername måste vara en databasanvändare eller databasroll i den aktuella databasen.

Returnera kodvärden

0 (lyckades) eller 1 (fel).

Remarks

Namnen på SQL Server-databasroller kan innehålla från 1 till 128 tecken, inklusive bokstäver, symboler och siffror. Namnen på databasroller kan inte innehålla ett backslash-tecken (\), be NULL, eller en tom sträng ('').

Efter att du lagt till en databasroll, använd sp_addrolemember för att lägga till principaler i rollen. När GRANT, DENY, eller REVOKE satser används för att tilldela behörigheter till databasrollen, ärver medlemmar i databasrollen dessa behörigheter som om behörigheterna applicerades direkt på deras konton.

Note

Nya serverroller kan inte skapas. Roller kan endast skapas på databasnivå.

sp_addrole Kan inte användas i en användardefinierad transaktion.

Permissions

Kräver CREATE ROLE behörighet för databasen. Om du skapar ett schema, krävs CREATE SCHEMA det i databasen. Om @ownername anges som en användare eller grupp, kräver IMPERSONATE det på den användaren eller gruppen. Om @ownername anges som en roll, krävs ALTER tillstånd för den rollen eller för en medlem i den rollen. Om ägaren anges som applikationsroll, krävs ALTER tillstånd för den applikationsrollen.

Examples

Följande exempel lägger till en ny roll som anropas Managers till den aktuella databasen.

EXECUTE sp_addrole 'Managers';