Megosztás a következőn keresztül:


sp_addrolemember (Transact-SQL)

Vonatkozik a következőkre:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitikai Platform System (PDW)SQL adatbázis a Microsoft Fabric-ben

Adatbázis-felhasználót, adatbázis-szerepkört, Windows-bejelentkezést vagy Windows-csoportot ad hozzá egy adatbázis-szerepkörhöz az aktuális adatbázisban.

Fontos

Ez a funkció az SQL Server egy későbbi verziójában lesz eltávolítva. Ne használja ezt a funkciót az új fejlesztési munkában, és tervezze meg a funkciót jelenleg használó alkalmazások módosítását. Használj inkább ALTER ROLE-t .

Transact-SQL szintaxis konvenciók

Szemantika

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

Megjegyzés:

Ezt a szintaxist az Azure Synapse Analytics kiszolgáló nélküli SQL-készlete nem támogatja.

Arguments

[ @rolename = ] N'rolename'

Az adatbázis szerepének neve a jelenlegi adatbázisban. @rolenamea sysname, alapértelmezett nélkül.

[ @membername = ] N'membername'

A biztonsági fiók hozzáadása a szerephez. @membernamea sysname, alapértelmezett nélkül. @membername lehet adatbázis-felhasználó, adatbázis-szerep, Windows bejelentkezés vagy Windows csoport.

Kódértékek visszaadása

0 (sikeres) vagy 1 (hiba).

Megjegyzések

Egy tag, amelyet a szerep használatával sp_addrolemember hozzáadnak, örökli a szerep jogosultságát. Ha az új tag Windows-szintű alapvetély, és nincs megfelelő adatbázis-felhasználó, akkor létrejön egy adatbázis-felhasználó, de lehet, hogy nem teljesen leképezik a bejelentkezéshez. Mindig ellenőrizd, hogy a bejelentkezés létezik-e és hozzáfér-e az adatbázishoz.

Egy szerep nem foglalhatja magában magát tagként. Az ilyen körkörös definíciók nem érvényesek, még akkor sem, ha a tagság közvetve egy vagy több köztes tagság által utal.

sp_addrolemember Nem lehet rögzített adatbázis-szerepet, fix szerver szerepet vagy DBO-t hozzáadni egy szerephez.

Csak sp_addrolemember tag hozzáadására használják egy adatbázis szerepbe. Ha egy tagot szerver szerephez hozzáadhatsz, használd a sp_addsrvrolemember.

Permissions

Tagok hozzáadása rugalmas adatbázis-szerepekhez az alábbi jogosultságok egyikét igényli:

  • Tagság a db_securityadmin vagy db_owner fix adatbázis szerepében.

  • Tagság abban a szerepben, amely a szerep tulajdonosa.

  • ALTER ANY ROLE Engedély vagy ALTER engedély a szerepre.

Tagok hozzáadásához fix adatbázis szerepekhez tagság szükséges db_owner fix adatbázis szerepében.

Példák

A. Hozzáadj egy Windows bejelentkezést

A következő példa hozzáadja a Windows bejelentkezést Contoso\Mary5 az AdventureWorks2025 adatbázishoz felhasználóként Mary5. Ezután a felhasználó Mary5 hozzáadódik a Production szerepbe.

Mivel Contoso\Mary5 az adatbázisban az adatbázis felhasználójaként Mary5AdventureWorks2025 ismert, a felhasználónevet Mary5 meg kell határozni. A kijelentés nem sikerül, hacsak nincs bejelentkezés Contoso\Mary5 . Teszteld a domainedről való bejelentkezéssel.

USE AdventureWorks2022;
GO

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

B. Adatbázis-felhasználó hozzáadása

Az alábbi példa hozzáadja az adatbázis-felhasználót Mary5 az Production aktuális adatbázis adatbázis szerepéhez.

EXECUTE sp_addrolemember 'Production', 'Mary5';

Példák: Elemzési platformrendszer (PDW)

C. Hozzáadj egy Windows bejelentkezést

A következő példa hozzáadja a bejelentkezést LoginMary az AdventureWorks2025 adatbázisba felhasználóként UserMary. Ezután a felhasználó UserMary hozzáadódik a Production szerepbe.

Megjegyzés:

Mivel a bejelentkezést LoginMary az adatbázisban az adatbázis felhasználóként UserMaryAdventureWorks2025 ismerik, a felhasználónevet UserMary meg kell határozni. A kijelentés meghibás, hacsak nincs bejelentkezés Mary5 . A bejelentkezések és a felhasználók általában ugyanazt a nevet viselik. Ez a példa különböző neveket használ, hogy megkülönböztesse a bejelentkezést és a felhasználót érintő műveleteket.

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

EXECUTE sp_addrolemember 'Production', 'UserMary';

D. Adatbázis-felhasználó hozzáadása

Az alábbi példa hozzáadja az adatbázis-felhasználót UserMary az Production aktuális adatbázis adatbázis szerepéhez.

EXECUTE sp_addrolemember 'Production', 'UserMary';