SYSTEM_USER (Transact-SQL)

Vonatkozik a következőkre:SQL ServerAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitikai Platform System (PDW)

Lehetővé teszi, hogy a rendszer által megadott értéket a jelenlegi bejelentkezéshez beillesztsenek egy táblába, ha nincs alapértelmezett érték.

Transact-SQL szintaxis konvenciók

Syntax

SYSTEM_USER  

Visszatérési típusok

nvarchar(128)

Remarks

A SYSTEM_USER függvényt használhatod korlátokkal DEFAULT az CREATE TABLE és ALTER TABLE utasításokban. Használhatod bármilyen szabványos funkcióként is.

Ha a felhasználónév és a bejelentkezési név eltérő, SYSTEM_USER visszaadja a bejelentkezési nevet.

Ha a jelenlegi felhasználó Windows hitelesítéssel van bejelentkezve SQL Server-ba, akkor a SYSTEM_USER a Windows bejelentkezési azonosító nevet adja vissza a következő formában: DOMAIN\user_login_name. Azonban, ha a jelenlegi felhasználó SQL Server hitelesítéssel van bejelentkezve SQL Server-be, akkor SYSTEM_USER visszaadja a SQL Server bejelentkezési azonosító nevet, például WillisJo egy felhasználónál, aki bejelentkezett -ként WillisJo.

SYSTEM_USER a jelenleg futtató kontextus nevét adja vissza. Ha az EXECUTE AS állítást használták a kontextus váltására, SYSTEM_USER visszaadja az átszemélyesen kezelt kontextus nevét.

Nem lehet EXECUTE AS SYSTEM_USER.

Azure SQL Database: A SYSTEM_USER utasítás nem támogatja a végrehajtást egy személyesen azonosított biztonsági kontextusban keresztül.EXECUTE AS

Examples

A. A SYSTEM_USER használata a jelenlegi rendszernév visszaállítására

A következő példa egy char változót hirdet, tárolja a változóban lévő aktuális értéket SYSTEM_USER , majd kinyomtatja a változóban tárolt értéket.

DECLARE @sys_usr CHAR(30);  
SET @sys_usr = SYSTEM_USER;  
SELECT 'The current system user is: '+ @sys_usr;  
GO  

Itt van az eredmények összessége.

----------------------------------------------------------
The current system user is: WillisJo

(1 row(s) affected)

B. Korlátozásokkal SYSTEM_USER DEFAULT használata

Az alábbi példa egy táblázatot hoz létre , SYSTEM_USER amely korlátként DEFAULT szolgál az SRep_tracking_user oszlophoz.

USE AdventureWorks2022;  
GO  
CREATE TABLE Sales.Sales_Tracking  
(  
    Territory_id INT IDENTITY(2000, 1) NOT NULL,  
    Rep_id INT NOT NULL,  
    Last_sale DATETIME NOT NULL DEFAULT GETDATE(),  
    SRep_tracking_user VARCHAR(30) NOT NULL DEFAULT SYSTEM_USER  
);  
GO  
INSERT Sales.Sales_Tracking (Rep_id)  
VALUES (151);  
INSERT Sales.Sales_Tracking (Rep_id, Last_sale)  
VALUES (293, '19980515');  
INSERT Sales.Sales_Tracking (Rep_id, Last_sale)  
VALUES (27882, '19980620');  
INSERT Sales.Sales_Tracking (Rep_id)  
VALUES (21392);  
INSERT Sales.Sales_Tracking (Rep_id, Last_sale)  
VALUES (24283, '19981130');  
GO  

A következő lekérdezés választja ki az összes információt a Sales_Tracking táblázatból:

SELECT * FROM Sales_Tracking ORDER BY Rep_id;  
GO  

Itt van az eredmények összessége.

Territory_id Rep_id Last_sale            SRep_tracking_user
-----------  ------ -------------------- ------------------
2000         151    Mar 4 1998 10:36AM   ArvinDak
2001         293    May 15 1998 12:00AM  ArvinDak
2003         21392  Mar 4 1998 10:36AM   ArvinDak
2004         24283  Nov 3 1998 12:00AM   ArvinDak
2002         27882  Jun 20 1998 12:00AM  ArvinDak
 
(5 row(s) affected)

Példák: Azure Synapse Analytics and Analytics Platform System (PDW)

C. A SYSTEM_USER használata a jelenlegi rendszernév visszaállítására

A következő példa a jelenlegi értékét adja vissza.SYSTEM_USER

SELECT SYSTEM_USER;  

Lásd még

ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
SESSION_USER (Transact-SQL)
Rendszerfunkciók (Transact-SQL)
USER (Transact-SQL)