USER_NAME (Transact-SQL)
Gibt einen Datenbank-Benutzernamen über eine angegebene ID zurück.
Transact-SQL-Syntaxkonventionen
Syntax
USER_NAME ( [ id ] )
Argumente
- id
Die ID, die einem Datenbankbenutzer zugeordnet ist. idist vom Datentyp int. Die Klammern sind erforderlich.
Rückgabetypen
nvarchar(256)
Hinweise
Wenn id nicht angegeben ist, wird der aktuelle Benutzer im aktuellen Kontext verwendet. Wenn der Parameter das Wort NULL enthält, wird ein NULL-Wert zurückgegeben. Wenn USER_NAME aufgerufen wird, ohne nach einer EXECUTE AS-Anweisung eine id anzugeben, gibt USER_NAME den Namen des Benutzers zurück, dessen Identität angenommen wurde. Falls ein Windows-Prinzipal über eine Mitgliedschaft in einer Gruppe auf die Datenbank zugreift, gibt USER_NAME den Namen des Windows-Prinzipals anstelle der Gruppe zurück.
Beispiele
A.Verwenden von USER_NAME
Im folgenden Beispiel wird der Benutzername für die Benutzer-ID 13 zurückgegeben.
SELECT USER_NAME(13);
GO
B.Verwenden von USER_NAME ohne ID
Das folgende Beispiel sucht nach dem Namen des aktuellen Benutzers, ohne eine ID anzugeben.
SELECT USER_NAME();
GO
Im Folgenden wird das Resultset für einen Benutzer aufgeführt, der Mitglied der festen sysadmin-Serverrolle ist:
------------------------------
dbo
(1 row(s) affected)
C.Verwenden von USER_NAME in der WHERE-Klausel
Das folgende Beispiel findet in der sysusers-Tabelle diejenige Zeile, in der der Name mit dem Ergebnis der USER_NAME-Systemfunktion (angewendet auf Benutzer-ID 1) übereinstimmt.
SELECT name FROM sysusers WHERE name = USER_NAME(1);
GO
Dies ist das Resultset.
name
------------------------------
dbo
(1 row(s) affected)
D.Aufrufen von USER_NAME während des Identitätswechsels mit EXECUTE AS
Das folgende Beispiel zeigt, wie sich USER_NAME während des Identitätswechsels verhält.
SELECT USER_NAME();
GO
EXECUTE AS USER = 'Zelig';
GO
SELECT USER_NAME();
GO
REVERT;
GO
SELECT USER_NAME();
GO
Dies ist das Resultset.
DBO
Zelig
DBO
Siehe auch
Verweis
CURRENT_TIMESTAMP (Transact-SQL)