Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitikai Platform System (PDW)
SQL adatbázis a Microsoft Fabric-ben
SESSION_USER visszaadja az aktuális adatbázis aktuális kontextusának felhasználónevét.
Transact-SQL szintaxis konvenciók
Szemantika
SESSION_USER
Visszatérési típusok
nvarchar(128)
Megjegyzések
Használd SESSION_USER DEFAULT korlátokkal a CREATE TABLE vagy ALTER TABLE utasításokban, vagy bármilyen szabványos függvényként használd. SESSION_USER beilleszthető egy táblába, ha nincs alapértelmezett érték. Ez a függvény nem vesz fel argumentumokat. SESSION_USER használható lekérdezésekhez.
Ha SESSION_USER kontextusváltás után hívják, akkor SESSION_USER visszaadja az imidentált kontextus felhasználónevét.
Példák
A. SESSION_USER használata a jelenlegi ülés felhasználónevének visszaadására
A következő példa egy változót úgy jelöl, mint nchar, a változó aktuális értékét SESSION_USER rendeli hozzá a változóhoz, majd kinyomtatja a változót szöveges leírással.
DECLARE @session_usr NCHAR(30);
SET @session_usr = SESSION_USER;
SELECT 'This session''s current user is: '+ @session_usr;
GO
Ez az eredményhalmaz, ha a session felhasználó a Suryakövetkezőké:
--------------------------------------------------------------
This session's current user is: Surya
(1 row(s) affected)
B. SESSION_USER használata ALAPÉRTELMEZETT korlátokkal
A következő példa egy táblázatot hoz létre, amely SESSION_USER korlátozásként DEFAULT használja annak a személynek a nevét, aki rögzíti a szállítmány beérkezését.
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
A táblázatba hozzáadott rekordokat a jelenlegi felhasználó felhasználónevével bélyegezik. Ebben a példában Wanida, Sylvester, és Alejandro ellenőrizd a szállítmányok átvételét. Ez emulálható a felhasználói kontextus váltásával .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
A következő lekérdezés választja ki az összes információt a deliveries3 táblázatból.
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
Itt van az eredmények összessége.
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)
Példák: Azure Synapse Analytics and Analytics Platform System (PDW)
C: A SESSION_USER használata a jelenlegi ülésszak felhasználónevének visszaadására
A következő példa adja vissza a jelenlegi munkamenet felhasználóját.
SELECT SESSION_USER;
Lásd még:
ALTERNATÍV TÁBLÁZAT (Transact-SQL)
CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
SYSTEM_USER (Transact-SQL)
Rendszerfunkciók (Transact-SQL)
FELHASZNÁLÓ (Transact-SQL)
USER_NAME (Transact-SQL)