Udostępnij za pośrednictwem


SETUSER (Transact-SQL)

Dotyczy:programu SQL ServerAzure SQL Managed Instance

Umożliwia członkowi sysadmin stałej roli serwera lub właściciela bazy danych personifikować innego użytkownika.

Ważny

ZESTAWUSER jest uwzględniony tylko w celu zapewnienia zgodności z poprzednimi wersjami. SETUSER może nie być obsługiwany w przyszłej wersji programu SQL Server. Zalecamy zamiast tego użycie EXECUTE AS.

Transact-SQL konwencje składni

Składnia

  
SETUSER [ 'username' [ WITH NORESET ] ]   

Argumenty

nazwy użytkownika
To nazwa użytkownika programu SQL Server lub systemu Windows w bieżącej bazie danych, która jest personifikowana. Jeśli nazwa użytkownika nie zostanie określona, oryginalna tożsamość administratora systemu lub właściciela bazy danych personifikacji użytkownika zostanie zresetowana.

Z NORESET
Określa, że kolejne instrukcje SETUSER (bez określonej nazwy użytkownika ) nie powinny resetować tożsamości użytkownika do administratora systemu lub właściciela bazy danych.

Uwagi

SETUSER może służyć przez członka sysadmin stałej roli serwera lub właściciela bazy danych do przyjęcia tożsamości innego użytkownika w celu przetestowania uprawnień innego użytkownika. Członkostwo w db_owner stałej roli bazy danych nie jest wystarczające.

Używaj tylko polecenia SETUSER z użytkownikami programu SQL Server. SETUSER nie jest obsługiwany przez użytkowników systemu Windows. Gdy element SETUSER został użyty do przyjęcia tożsamości innego użytkownika, wszystkie obiekty tworzone przez personifikację użytkownika są własnością użytkownika personifikowanego. Jeśli na przykład właściciel bazy danych zakłada tożsamość użytkownika Margaret i tworzy tabelę o nazwie orders, tabela orders jest własnością Margaret, a nie administrator systemu.

SETUSER pozostaje w mocy do momentu wydania innej instrukcji SETUSER lub do momentu zmiany bieżącej bazy danych za pomocą instrukcji USE.

Nuta

Jeśli jest używany element SETUSER WITH NORESET, właściciel bazy danych lub administrator systemu musi wylogować się, a następnie zalogować się ponownie, aby ponownie opublikować własne prawa.

Uprawnienia

Wymaga członkostwa w sysadmin stałej roli serwera lub musi być właścicielem bazy danych. Członkostwo w db_owner stałej roli bazy danych nie jest wystarczające

Przykłady

W poniższym przykładzie pokazano, jak właściciel bazy danych może przyjąć tożsamość innego użytkownika. mary użytkownika utworzył tabelę o nazwie computer_types. Za pomocą polecenia SETUSER właściciel bazy danych personifikuje mary przyznać użytkownikowi joe dostęp do tabeli computer_types, a następnie resetuje własną tożsamość.

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

Zobacz też

DENY (Transact-SQL)
GRANT (Transact-SQL)
ODWOŁAJ (Transact-SQL)
USE (Transact-SQL)