Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí na:SQL ServerAzure
SQL Managed InstanceAzure
Synapse AnalyticsSQL
analytics endpoint in Microsoft FabricWarehouse
in Microsoft Fabric
Umožňuje vložit systémově dodanou hodnotu aktuálního přihlášení do tabulky, pokud není uvedena žádná výchozí hodnota.
Syntax
SYSTEM_USER
Návratové typy
nvarchar(128)
Remarks
Můžete použít funkci SYSTEM_USER s DEFAULT omezeními v příkazech CREATE TABLE and ALTER TABLE (a). Můžete ji také použít jako jakoukoli standardní funkci.
Pokud jsou uživatelské jméno a přihlašovací jméno odlišné, SYSTEM_USER vrátí přihlašovací jméno.
Pokud je současný uživatel přihlášen do SQL Server pomocí Windows autentizace, SYSTEM_USER vrátí Windows přihlašovací identifikační jméno ve formuláři: DOMAIN\user_login_name. Pokud je však současný uživatel přihlášen do SQL Server pomocí SQL Server autentizace, SYSTEM_USER vrátí SQL Server přihlašovací jméno, například WillisJo pro uživatele přihlášeného jako WillisJo.
SYSTEM_USER vrací název právě vykonávaného kontextu. Pokud EXECUTE AS byl výrok použit k přepnutí kontextu, SYSTEM_USER vrátí název napodobeného kontextu.
Nemůžeš EXECUTE AS SYSTEM_USER.
Azure SQL Database: Příkaz SYSTEM_USER nepodporuje provádění s použitím předstíraného bezpečnostního kontextu prostřednictvím EXECUTE AS.
Příklady
A. Použitím SYSTEM_USER k vrácení aktuálního uživatelského jména systému
Následující příklad deklaruje char proměnnou, uloží aktuální hodnotu proměnné SYSTEM_USER do proměnné a poté vytiskne hodnotu uloženou v proměnné.
DECLARE @sys_usr CHAR(30);
SET @sys_usr = SYSTEM_USER;
SELECT 'The current system user is: '+ @sys_usr;
GO
Tady je soubor výsledků.
----------------------------------------------------------
The current system user is: WillisJo
(1 row(s) affected)
B. Použití SYSTEM_USER s DEFAULT omezeními
Následující příklad vytváří tabulku s jako SYSTEM_USERDEFAULT omezením pro sloupec SRep_tracking_user .
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
Následující dotaz vybírá všechny informace z tabulky Sales_Tracking :
SELECT * FROM Sales_Tracking ORDER BY Rep_id;
GO
Tady je soubor výsledků.
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říklady: Azure Synapse Analytics
C. Použitím SYSTEM_USER k vrácení aktuálního uživatelského jména systému
Následující příklad vrací aktuální hodnotu .SYSTEM_USER
SELECT SYSTEM_USER;