Sdílet prostřednictvím


sp_addrolemember (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)databáze SQL v Microsoft Fabric

Přidá uživatele databáze, roli databáze, přihlášení systému Windows nebo skupinu Windows do databázové role v aktuální databázi.

Důležité

Tato funkce bude odebrána v budoucí verzi SQL Serveru. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají. Použijte místo toho ALTER ROLE .

Transact-SQL konvence syntaxe

Syntaxe

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

Poznámka:

Tato syntaxe není podporována bezserverovým fondem SQL ve službě Azure Synapse Analytics.

Arguments

[ @rolename = ] N'rolename'

Název role databáze v aktuální databázi. @rolename je sysname, bez výchozího nastavení.

[ @membername = ] N'členské jméno'

Bezpečnostní účet, který je přidáván do role. @membername je sysname bez výchozího nastavení. @membername může být uživatel databáze, databázová role, přihlášení do Windows nebo skupina pro Windows.

Hodnoty návratového kódu

0 (úspěch) nebo 1 (selhání).

Poznámky

Člen přidaný do role pomocí sp_addrolemember dědí oprávnění této role. Pokud je nový člen principal na úrovni Windows bez odpovídajícího uživatele databáze, uživatel databáze je vytvořen, ale nemusí být plně přiřazen k přihlašovacímu údajům. Vždy zkontrolujte, že přihlášení existuje a má přístup k databázi.

Role se nemůže sama zařadit do role člena. Takové kruhové definice nejsou platné, ani když je členství nepřímo implikováno jedním nebo více mezilehlými členstvími.

sp_addrolemember Nelze přidat pevnou databázovou roli, pevnou serverovou roli nebo DBO k roli.

Používám sp_addrolemember jen k přidání člena do databázové role. Pro přidání člena do role serveru použijte sp_addsrvrolemember.

Povolení

Přidání členů do flexibilních databázových rolí vyžaduje jedno z následujících oprávnění:

  • Členství v db_securityadmin nebo db_owner pevné databázové roli.

  • Členství v roli, která tuto roli vlastní.

  • ALTER ANY ROLE Povolení nebo ALTER povolení k roli.

Přidání členů do pevných databázových rolí vyžaduje členství v db_owner pevné databázové roli.

Examples

A. Přidejte přihlášení do Windows

Následující příklad přidává přihlášení Contoso\Mary5 do Windows do databáze AdventureWorks2025 jako uživatel Mary5. Uživatel Mary5 je pak přidán do Production role.

Protože Contoso\Mary5 je v databázi Mary5 označován jako uživatel AdventureWorks2025 databáze, musí být uvedeno uživatelské jménoMary5. Příkaz selže, pokud Contoso\Mary5 neexistuje přihlášení. Testujte to pomocí přihlášení z vaší domény.

USE AdventureWorks2022;
GO

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

B. Přidejte uživatele databáze

Následující příklad přidává uživatele Mary5 databáze do role databáze Production v aktuální databázi.

EXECUTE sp_addrolemember 'Production', 'Mary5';

Příklady: Systém analytických platforem (PDW)

C. Přidejte přihlášení do Windows

Následující příklad přidává přihlášení LoginMary do databáze AdventureWorks2025 jako uživatel UserMary. Uživatel UserMary je pak přidán do Production role.

Poznámka:

Protože je přihlášení LoginMary v databázi UserMary označováno jako uživatel AdventureWorks2025 databáze, musí být uvedeno uživatelské jménoUserMary. Příkaz selže, pokud Mary5 neexistuje přihlášení. Přihlášení a uživatelé obvykle mají stejné jméno. Tento příklad používá různé názvy k rozlišení akcí ovlivňujících přihlášení a uživatele.

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

EXECUTE sp_addrolemember 'Production', 'UserMary';

D. Přidejte uživatele databáze

Následující příklad přidává uživatele UserMary databáze do role databáze Production v aktuální databázi.

EXECUTE sp_addrolemember 'Production', 'UserMary';