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ý

SETUSER je zahrnuto pouze pro zpětnou kompatibilitu. SETUSERnemusí být podporován v budoucí verzi SQL Server. Doporučujeme místo toho používat 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
Specifikuje, že následující SETUSER příkazy (bez specifikovaného uživatelského jména) by neměly resetovat uživatelskou identitu na správce systému nebo vlastníka databáze.

Poznámky

SETUSER Může jej použít člen role správce pevného serveru nebo vlastník databáze k přijetí identity jiného uživatele a otestování oprávnění druhého uživatele. Členství v db_owner pevné databázové roli nestačí.

Používejte SETUSER pouze s uživateli SQL Server. SETUSERnení podporován uživateli Windows. Když SETUSER byl použit k převzetí identity jiného uživatele, všechny objekty, které uživatel vytvoří napodobujícím uživatelem, patří uživateli, za kterého se vydává. 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ůstává v platnosti, dokud není vydáno další SETUSER prohlášení nebo dokud není aktuální databáze změněna příkazem USE.

Poznámka

Pokud SETUSER je použit WITH NORESET, vlastník databáze nebo správce systému se musí odhlásit a poté znovu přihlásit, aby obnovil svá 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. Použitím SETUSER, vlastník databáze se vydáva mary za uživatele joe a poskytuje uživateli přístup k tabulce computer_types , a poté resetuje svou vlastní identitu.

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

Viz také

DENY (Transact-SQL)
GRANT (Transact-SQL)
REVOKE (Transact-SQL)
USE (Transact-SQL)