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 Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-Datenbank in Microsoft Fabric
Diese Funktion gibt den Namen des aktuellen Benutzers zurück. Diese Funktion ist gleichbedeutend mit USER_NAME().
Transact-SQL-Syntaxkonventionen
Syntax
CURRENT_USER
Rückgabetypen
sysname
Bemerkungen
CURRENT_USER gibt den Namen des aktuellen Sicherheitskontexts zurück. Wird CURRENT_USER ausgeführt, nachdem der Kontext über einen Aufruf von EXECUTE AS gewechselt wurde, gibt CURRENT_USER den Namen des gewechselten Identitätskontexts zurück. Falls ein Windows-Prinzipal über eine Mitgliedschaft in einer Gruppe auf die Datenbank zugegriffen hat, gibt CURRENT_USER den Namen des Windows-Prinzipals anstelle des Gruppennamens zurück.
Weitere Informationen dazu, wie der Anmeldename des aktuellen Benutzers zurückgegeben werden kann, finden Sie unter SUSER_NAME (Transact-SQL) und SYSTEM_USER (Transact-SQL).
Beispiele
A. Verwenden von CURRENT_USER zur Rückgabe des aktuellen Benutzernamens
In diesem Beispiel wird der Name des aktuellen Benutzers zurückgegeben.
SELECT CURRENT_USER;
GO
B. Verwenden von CURRENT_USER als DEFAULT-Einschränkung
In diesem Beispiel wird eine Tabelle erstellt, die CURRENT_USER als DEFAULT-Einschränkung für die order_person-Spalte in einer Zeile mit Verkaufszahlen verwendet.
USE AdventureWorks2022;
GO
IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'orders22')
DROP TABLE orders22;
GO
SET NOCOUNT ON;
CREATE TABLE orders22
(
order_id int IDENTITY(1000, 1) NOT NULL,
cust_id int NOT NULL,
order_date smalldatetime NOT NULL DEFAULT GETDATE(),
order_amt money NOT NULL,
order_person char(30) NOT NULL DEFAULT CURRENT_USER
);
GO
In diesem Beispiel wird ein Datensatz in die Tabelle eingefügt. Die Benutzerin mit dem Namen Wanida führt diese Anweisungen aus.
INSERT orders22 (cust_id, order_amt)
VALUES (5105, 577.95);
GO
SET NOCOUNT OFF;
GO
In dieser Abfrage werden alle Informationen in der orders22-Tabelle ausgewählt.
SELECT * FROM orders22;
GO
Hier sehen Sie das Ergebnis.
order_id cust_id order_date order_amt order_person
----------- ----------- -------------------- ------------ ------------
1000 5105 2005-04-03 23:34:00 577.95 Wanida
(1 row(s) affected)
C. Verwenden von CURRENT_USER aus einem Kontext, dessen Identität angenommen wurde
In diesem Beispiel führt die Benutzerin Wanida den folgenden Transact-SQL-Code aus, um sich als Benutzer „Arnalfo“ auszugeben.
SELECT CURRENT_USER;
GO
EXECUTE AS USER = 'Arnalfo';
GO
SELECT CURRENT_USER;
GO
REVERT;
GO
SELECT CURRENT_USER;
GO
Hier sehen Sie das Ergebnis.
Wanida
Arnalfo
Wanida
Siehe auch
USER_NAME (Transact-SQL)
SYSTEM_USER (Transact-SQL)
sys.database_principals (Transact-SQL)
ALTER TABLE (Transact-SQL)
Tabelle erstellen (Transact-SQL)
Systemfunktionen (Transact-SQL)