Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Database in Microsoft Fabric
SESSION_USER geeft de gebruikersnaam van de huidige context terug in de huidige database.
Transact-SQL syntaxis-conventies
Syntaxis
SESSION_USER
Retourtypen
nvarchar(128)
Opmerkingen
Gebruik SESSION_USER met DEFAULT-constraints in de CREATE TABLE- of ALTER TABLE-instructies, of gebruik het als een standaardfunctie. SESSION_USER kan in een tabel worden ingevoegd wanneer er geen standaardwaarde is opgegeven. Deze functie heeft geen argumenten. SESSION_USER kan in queries worden gebruikt.
Als SESSION_USER wordt aangeroepen na een contextwisseling, geeft SESSION_USER de gebruikersnaam van de geïmporteerde context terug.
Voorbeelden
Eén. Met SESSION_USER de gebruikersnaam van de huidige sessie teruggeven
Het volgende voorbeeld verklaart een variabele als nchar, wijst de huidige waarde van SESSION_USER toe aan die variabele, en drukt vervolgens de variabele af met een tekstbeschrijving.
DECLARE @session_usr NCHAR(30);
SET @session_usr = SESSION_USER;
SELECT 'This session''s current user is: '+ @session_usr;
GO
Dit is het resultaat dat wordt ingesteld wanneer de sessiegebruiker is Surya:
--------------------------------------------------------------
This session's current user is: Surya
(1 row(s) affected)
B. Gebruik SESSION_USER met DEFAULT-beperkingen
Het volgende voorbeeld creëert een tabel die als DEFAULT beperking wordt gebruikt SESSION_USER voor de naam van de persoon die de ontvangst van een zending registreert.
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
Records die aan de tabel worden toegevoegd, worden gestempeld met de gebruikersnaam van de huidige gebruiker. In dit voorbeeld, Wanida, Sylvester, en Alejandro verifieer de ontvangst van zendingen. Dit kan worden nagebootst door de gebruikerscontext te wisselen met behulp van EXECUTE AS.
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
De volgende query selecteert alle informatie uit de deliveries3 tabel.
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 is het resultatenoverzicht.
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)
Voorbeelden: Azure Synapse Analytics and Analytics Platform System (PDW)
C: Gebruik SESSION_USER om de gebruikersnaam van de huidige sessie terug te geven
Het volgende voorbeeld geeft de sessiegebruiker terug voor de huidige sessie.
SELECT SESSION_USER;
Zie ook
ALTER TABLE (Transact-SQL)
MAAK TABEL AAN (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
SYSTEM_USER (Transact-SQL)
Systeemfuncties (Transact-SQL)
GEBRUIKER (Transact-SQL)
USER_NAME (Transact-SQL)