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
SESSION_USER gibt den Benutzernamen im Kontext der aktuellen Datenbank zurück.
Transact-SQL-Syntaxkonventionen
Syntax
SESSION_USER
Rückgabetypen
nvarchar(128)
Hinweise
Verwenden Sie SESSION_USER mit DEFAULT-Einschränkungen in der CREATE TABLE- oder ALTER TABLE-Anweisung oder als beliebige Standardfunktion. SESSION_USER kann in eine Tabelle eingefügt werden, wenn kein Standardwert angegeben wird. Diese Funktion akzeptiert keine Argumente. SESSION_USER kann in Abfragen verwendet werden.
Wird SESSION_USER nach einem Kontextwechsel aufgerufen, gibt SESSION_USER den Benutzernamen des Kontexts zurück, dessen Identität angenommen wurde.
Beispiele
A. Verwenden von SESSION_USER zur Rückgabe des Benutzernamens der aktuellen Sitzung
Im folgenden Beispiel wird eine Variable als Datentyp nchar deklariert, ihr der aktuelle Wert von SESSION_USER zugewiesen und die Variable dann mit einer Textbeschreibung ausgegeben.
DECLARE @session_usr NCHAR(30);
SET @session_usr = SESSION_USER;
SELECT 'This session''s current user is: '+ @session_usr;
GO
Wenn Surya Sitzungsbenutzer ist, sieht das Resultset folgendermaßen aus:
--------------------------------------------------------------
This session's current user is: Surya
(1 row(s) affected)
B. Verwenden von SESSION_USER mit DEFAULT-Einschränkungen
Im folgenden Beispiel wird eine Tabelle erstellt, die SESSION_USER als DEFAULT-Einschränkung für den Namen der Person verwendet, die den Empfang einer Lieferung aufzeichnet.
USE AdventureWorks2022;
GO
CREATE TABLE deliveries3
(
order_id INT IDENTITY(5000, 1) NOT NULL,
cust_id INT NOT NULL,
order_date SMALLDATETIME NOT NULL DEFAULT GETDATE(),
delivery_date SMALLDATETIME NOT NULL DEFAULT
DATEADD(dd, 10, GETDATE()),
received_shipment NCHAR(30) NOT NULL DEFAULT SESSION_USER
);
GO
Der Tabelle hinzugefügte Datensätze werden mit dem Benutzernamen des aktuellen Benutzers versehen. Im folgenden Beispiel wird der Empfang von Lieferungen von Wanida, Sylvester und Alejandro überprüft. Dies kann durch Wechseln des Benutzerkontexts mithilfe von EXECUTE AS emuliert werden.
EXECUTE AS USER = 'Wanida'
INSERT deliveries3 (cust_id)
VALUES (7510);
INSERT deliveries3 (cust_id)
VALUES (7231);
REVERT;
EXECUTE AS USER = 'Sylvester'
INSERT deliveries3 (cust_id)
VALUES (7028);
REVERT;
EXECUTE AS USER = 'Alejandro'
INSERT deliveries3 (cust_id)
VALUES (7392);
INSERT deliveries3 (cust_id)
VALUES (7452);
REVERT;
GO
In der folgenden Abfrage werden alle Informationen aus der deliveries3-Tabelle ausgewählt.
SELECT order_id AS 'Order #', cust_id AS 'Customer #',
delivery_date AS 'When Delivered', received_shipment
AS 'Received By'
FROM deliveries3
ORDER BY order_id;
GO
Hier sehen Sie das Ergebnis.
Order # Customer # When Delivered Received By
-------- ---------- ------------------- -----------
5000 7510 2005-03-16 12:02:14 Wanida
5001 7231 2005-03-16 12:02:14 Wanida
5002 7028 2005-03-16 12:02:14 Sylvester
5003 7392 2005-03-16 12:02:14 Alejandro
5004 7452 2005-03-16 12:02:14 Alejandro
(5 row(s) affected)
Beispiele: Azure Synapse Analytics und Analytics-Plattformsystem (PDW)
C: Verwenden von SESSION_USER zur Rückgabe des Benutzernamens der aktuellen Sitzung
Im folgenden Beispiel wird der Sitzungsbenutzer für die aktuelle Sitzung zurückgegeben.
SELECT SESSION_USER;
Weitere Informationen
ALTER TABLE (Transact-SQL)
Tabelle erstellen (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
SYSTEM_USER (Transact-SQL)
Systemfunktionen (Transact-SQL)
NUTZER (Transact-SQL)
USER_NAME (Transact-SQL)