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 Server
Azure SQL Managed Instance
Azure Synapse Analytics
Analytický platformový systém (PDW)
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 a Analytický platformový systém (PDW)
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;
Viz také
ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
SESSION_USER (Transact-SQL)
Systémové funkce (Transact-SQL)
USER (Transact-SQL)