Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL Managed Instance
Ermöglicht einem Mitglied der festen Serverrolle sysadmin oder dem Besitzer einer Datenbank die Identität eines anderen Benutzers anzunehmen.
Wichtig
SETUSER ist nur für Abwärtskompatibilität enthalten. SETUSERmöglicherweise nicht mehr in einer zukünftigen Version von SQL Server unterstützt werden. Stattdessen wird die Verwendung von EXECUTE AS empfohlen.
Transact-SQL-Syntaxkonventionen
Syntax
SETUSER [ 'username' [ WITH NORESET ] ]
Argumente
'username'
Dies ist der Name eines SQL Server- oder Windows-Benutzers in der aktuellen Datenbank, dessen Identität angenommen werden soll. Wird username nicht angegeben, so wird die ursprüngliche Identität des Systemadministrators oder des Datenbankbesitzers, der eine fremde Identität angenommen hat, wiederhergestellt.
MIT NORESET
Legt fest, dass nachfolgende SETUSER Anweisungen (ohne angegebenen Benutzernamen) die Benutzeridentität nicht auf Systemadministrator oder Datenbankinhaber zurücksetzen dürfen.
Bemerkungen
SETUSER kann von einem Mitglied der Sysadmin-Fixed-Server-Rolle oder dem Eigentümer einer Datenbank verwendet werden, um die Identität eines anderen Benutzers anzunehmen, um die Berechtigungen des anderen Benutzers zu testen. Die Mitgliedschaft in der festen Datenbankrolle db_owner reicht nicht aus.
Nur mit SQL Server-Nutzern zu verwendenSETUSER. SETUSERwird bei Windows-Nutzern nicht unterstützt. Wenn SETUSER verwendet wurde, um die Identität eines anderen Benutzers anzunehmen, gehören alle Objekte, die der imitierende Nutzer erstellt, dem jeweiligen Benutzer. Wenn der Datenbankbesitzer beispielsweise die Identität der Benutzerin Margaret annimmt und eine Tabelle namens orders erstellt, gehört diese orders-Tabelle der Benutzerin Margaret und nicht dem Systemadministrator.
SETUSER bleibt in Kraft, bis eine weitere SETUSER Aussage ausgegeben wird oder die aktuelle Datenbank mit der USE-Anweisung geändert wird.
Hinweis
Wenn SETUSER WITH NORESET verwendet wird, muss der Datenbankbesitzer oder Systemadministrator sich abmelden und dann wieder einloggen, um seine eigenen Rechte wiederherzustellen.
Berechtigungen
Setzt die Mitgliedschaft in der festen Serverrolle sysadmin oder den Besitz der Datenbank voraus. Die Mitgliedschaft in der festen Datenbankrolle db_owner reicht nicht aus.
Beispiele
Das folgende Beispiel zeigt, wie der Datenbankbesitzer die Identität eines anderen Benutzers annehmen kann. Die Benutzerin mary hat eine Tabelle namens computer_types erstellt. Durch die Verwendung SETUSERvon , gibt mary sich der Datenbankbesitzer aus, um dem Benutzer joe Zugriff auf die computer_types Tabelle zu gewähren, und setzt dann seine eigene Identität zurück.
SETUSER 'mary';
GO
GRANT SELECT ON computer_types TO joe;
GO
--To revert to the original user
SETUSER;
Weitere Informationen
DENY (Transact-SQL)
GRANT (Transact-SQL)
REVOKE (Transact-SQL)
NUTZUNG (Transact-SQL)