Sdílet prostřednictvím


SETUSER (Transact-SQL)

platí pro:SQL Serverazure SQL Managed Instance

Umožňuje členovi správce systému pevnou roli serveru nebo vlastníka databáze zosobnit jiného uživatele.

Důležitý

FUNKCE SETUSER je zahrnuta pouze pro zpětnou kompatibilitu. SETUSER nemusí být v budoucí verzi SQL Serveru podporována. Doporučujeme místo toho použít EXECUTE AS.

Transact-SQL konvence syntaxe

Syntax

  
SETUSER [ 'username' [ WITH NORESET ] ]   

Argumenty

uživatelské jméno
Je název uživatele SYSTÉMU SQL Server nebo Windows v aktuální databázi, která je zosobněná. Pokud není zadáno uživatelské jméno, původní identita správce systému nebo vlastníka databáze zosobnění uživatele se resetuje.

S NORESETEM
Určuje, že následné příkazy SETUSER (bez zadaného uživatelského jména uživatelské jméno) by neměly resetovat identitu uživatele na správce systému nebo vlastníka databáze.

Poznámky

SETUSER může používat člen správce systému pevnou roli serveru nebo vlastníka databáze k otestování oprávnění jiného uživatele. Členství v db_owner pevné databázové roli nestačí.

SetUSER používejte pouze s uživateli SQL Serveru. SETUSER není u uživatelů Systému Windows podporován. Pokud byl setUSER použit k převzetí identity jiného uživatele, všechny objekty, které zosobnění uživatel vytvoří, jsou vlastněny uživatelem, který se zosobní. Pokud například vlastník databáze předpokládá identitu uživatele Margaret a vytvoří tabulku s názvem objednávky, objednávky tabulka vlastní Margaret, nikoli správce systému.

SETUSER zůstane v platnosti, dokud se nevystaví jiný příkaz SETUSER nebo dokud se nezmění aktuální databáze pomocí příkazu USE.

Poznámka

Pokud se používá SETUSER WITH NORESET, musí se vlastník databáze nebo správce systému odhlásit a znovu se přihlásit, aby znovu vytvořil vlastní práva.

Dovolení

Vyžaduje členství v správce systému pevné roli serveru nebo musí být vlastníkem databáze. Členství v db_owner pevné databázové roli nestačí

Příklady

Následující příklad ukazuje, jak může vlastník databáze přijmout identitu jiného uživatele. Uživatel mary vytvořil tabulku s názvem computer_types. Pomocí setUSER se vlastník databáze zosobní mary, aby uživatelům udělil joe přístup k tabulce computer_types a pak resetuje vlastní identitu.

SETUSER 'mary';  
GO  
GRANT SELECT ON computer_types TO joe;  
GO  
--To revert to the original user  
SETUSER;  

Viz také

odepřít (Transact-SQL)
GRANT (Transact-SQL)
ODVOLÁNÍ (Transact-SQL)
USE (Transact-SQL)