SETUSER (Transact-SQL)
Dotyczy:programu SQL Server
Azure 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)