SETUSER (Transact-SQL)
Ermöglicht einem Mitglied der festen Serverrolle sysadmin oder der festen Datenbankrolle db_owner, die Identität eines anderen Benutzers anzunehmen.
Wichtig |
---|
SETUSER ist nur aus Gründen der Abwärtskompatibilität enthalten. SETUSER wird in einer künftigen Version von SQL Server möglicherweise nicht mehr unterstützt. Es empfiehlt sich, stattdessen EXECUTE AS zu verwenden. |
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.WITH NORESET
Gibt an, dass bei nachfolgenden SETUSER-Anweisungen (ohne Angabe von username) die ursprüngliche Identität des Systemadministrators bzw. Datenbankbesitzers nicht wiederhergestellt wird.
Hinweise
SETUSER kann von Mitgliedern der festen Serverrolle sysadmin oder der festen Datenbankrolle db_owner verwendet werden, um die Identität eines anderen Benutzers zum Testen der Berechtigungen dieses Benutzers anzunehmen.
Verwenden Sie SETUSER nur für SQL Server-Benutzer. SETUSER wird nicht für Windows-Benutzer unterstützt. Wenn Sie mit SETUSER die Identität eines anderen Benutzers angenommen haben, gehören alle Objekte, die Sie unter seiner Identität erstellen, diesem Benutzer. Wenn der Datenbankbesitzer beispielsweise die Identität der Benutzerin Margaret annimmt und eine Tabelle namens orders erstellt, gehört diese Tabelle der Benutzerin Margaret, nicht dem Systemadministrator.
SETUSER bleibt wirksam, bis eine andere SETUSER-Anweisung ausgeführt oder die aktuelle Datenbank mit der USE-Anweisung gewechselt wird.
Hinweis |
---|
Falls SETUSER WITH NORESET verwendet wird, muss der Datenbankbesitzer bzw. der Systemadministrator sich ab- und wieder anmelden, um seine ursprünglichen Berechtigungen wiederherzustellen. |
Berechtigungen
Erfordert die Mitgliedschaft in der festen Serverrolle sysadmin oder der festen Datenbankrolle db_owner.
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. Mithilfe von SETUSER nimmt der Datenbankbesitzer die Identität von mary an, um dem Benutzer joe den Zugriff auf die computer_types-Tabelle zu erteilen. Anschließend nimmt der Benutzer wieder seine eigene Identität an.
SETUSER 'mary'
GO
GRANT SELECT ON computer_types TO joe
GO
SETUSER