sp_addrolemember (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-databas i Microsoft Fabric

Lägger till en databasanvändare, databasroll, Windows-inloggning eller Windows-grupp till en databasroll i den aktuella databasen.

Viktigt!

Den här funktionen tas bort i en framtida version av SQL Server. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen. Använd istället ALTER ROLE .

Transact-SQL syntaxkonventioner

Syntax

sp_addrolemember
    [ @rolename = ] N'rolename'
    , [ @membername = ] N'membername'
[ ; ]

Anmärkning

Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.

Arguments

[ @rolename = ] N'rollnamn'

Namnet på databasrollen i den aktuella databasen. @rolename är sysname, utan standard.

[ @membername = ] N'medlemnamn'

Säkerhetskontot läggs till i rollen. @membername är sysname, utan standard. @membername kan vara en databasanvändare, databasroll, Windows-inloggning eller Windows-grupp.

Returnera kodvärden

0 (lyckades) eller 1 (fel).

Anmärkningar

En medlem som läggs till i en roll genom att använda sp_addrolemember ärver behörigheterna för rollen. Om den nya medlemmen är en Windows-nivåchef utan motsvarande databasanvändare skapas en databasanvändare, men den kanske inte är helt kopplad till inloggningen. Kontrollera alltid att inloggningen finns och att den har tillgång till databasen.

En roll kan inte inkludera sig själv som medlem. Sådana cirkulära definitioner är inte gälla, även när medlemskap indirekt antydes av en eller flera mellanliggande medlemskap.

sp_addrolemember Man kan inte lägga till en fast databasroll, fast serverroll eller databas till en roll.

Använder sp_addrolemember det bara för att lägga till en medlem i en databasroll. För att lägga till en medlem i en serverroll, använd sp_addsrvrolemember.

Permissions

Att lägga till medlemmar i flexibla databasroller kräver en av följande behörigheter:

  • Medlemskap i db_securityadmin eller db_owner fast databasroll.

  • Medlemskap i den roll som äger rollen.

  • ALTER ANY ROLE Tillstånd eller ALTER tillstånd för rollen.

Att lägga till medlemmar i fasta databasroller kräver medlemskap i den db_owner fasta databasrollen.

Examples

A. Lägg till en Windows-inloggning

Följande exempel lägger till Windows-inloggningen Contoso\Mary5 i databasen AdventureWorks2025 som användare Mary5. Användaren Mary5 läggs sedan till i rollen Production .

Eftersom Contoso\Mary5 är känd som databasanvändaren Mary5 i databasen AdventureWorks2025 måste användarnamnet Mary5 anges. Uttalandet misslyckas om det inte finns en Contoso\Mary5 inloggning. Testa genom att logga in från din domän.

USE AdventureWorks2022;
GO

CREATE USER Mary5 FOR LOGIN [Contoso\Mary5];
GO

B. Lägg till en databasanvändare

Följande exempel lägger till databasanvändaren Mary5 i Production databasrollen i den aktuella databasen.

EXECUTE sp_addrolemember 'Production', 'Mary5';

Exempel: Analysplattformssystem (PDW)

C. Lägg till en Windows-inloggning

Följande exempel lägger till inloggningen LoginMary till databasen AdventureWorks2025 som användare UserMary. Användaren UserMary läggs sedan till i rollen Production .

Anmärkning

Eftersom inloggningen LoginMary kallas databasanvändaren UserMary i databasen AdventureWorks2025 måste användarnamnet UserMary anges. Utdraget kommer att misslyckas om det inte finns en Mary5 inloggning. Inloggningar och användare har vanligtvis samma namn. Detta exempel använder olika namn för att skilja på handlingarna som påverkar inloggningen jämfört med användaren.

-- Uses AdventureWorks2022
CREATE USER UserMary FOR LOGIN LoginMary;
GO

EXECUTE sp_addrolemember 'Production', 'UserMary';

D. Lägg till en databasanvändare

Följande exempel lägger till databasanvändaren UserMary i Production databasrollen i den aktuella databasen.

EXECUTE sp_addrolemember 'Production', 'UserMary';