Sdílet prostřednictvím


UŽIVATEL (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)databáze SQL v Microsoft Fabric

Umožňuje vložit systémově dodanou hodnotu uživatelského jména aktuálního uživatele do tabulky, pokud není stanovena žádná výchozí hodnota.

Transact-SQL konvence syntaxe

Syntaxe

USER  

Návratové typy

nvarchar(128)

Poznámky

USER poskytuje stejnou funkčnost jako USER_NAME systémová funkce.

Použijte USER s výchozími omezeními buď v příkazech CREATE TABLE nebo ALTER TABLE, nebo jako jakoukoli standardní funkci.

USER vždy vrací název aktuálního kontextu. Při volání po příkazu EXECUTE AS USER vrátí název impersonovaného kontextu.

Pokud principal Windows přistupuje k databázi prostřednictvím členství ve skupině, USER vrátí jméno principala Windows místo názvu skupiny.

Examples

A. Použití USER pro vrácení uživatelského jména databáze

Následující příklad deklaruje proměnnou jako char, přiřadí jí aktuální hodnotu USER a poté vytiskne proměnnou s textovým popisem.

DECLARE @usr CHAR(30)  
SET @usr = user  
SELECT 'The current user''s database username is: '+ @usr  
GO  

Tady je soubor výsledků.

-----------------------------------------------------------------------  
The current user's database username is: dbo  
 
(1 row(s) affected)

B. Použití USER s výchozími omezeními

Následující příklad vytváří tabulku použitím USER jako DEFAULT omezení pro prodejce v řádku prodeje.

USE AdventureWorks2022;  
GO  
CREATE TABLE inventory22  
(  
 part_id INT IDENTITY(100, 1) NOT NULL,  
 description VARCHAR(30) NOT NULL,  
 entry_person VARCHAR(30) NOT NULL DEFAULT USER   
)  
GO  
INSERT inventory22 (description)  
VALUES ('Red pencil')  
INSERT inventory22 (description)  
VALUES ('Blue pencil')  
INSERT inventory22 (description)  
VALUES ('Green pencil')  
INSERT inventory22 (description)  
VALUES ('Black pencil')  
INSERT inventory22 (description)  
VALUES ('Yellow pencil')  
GO  

Toto je dotaz pro výběr všech informací z tabulky inventory22 :

SELECT * FROM inventory22 ORDER BY part_id;  
GO  

Zde je množina výsledků (všimněte si hodnoty entry-person ):

part_id     description                    entry_person
----------- ------------------------------ -------------------------
100         Red pencil                     dbo
101         Blue pencil                    dbo
102         Green pencil                   dbo
103         Black pencil                   dbo
104         Yellow pencil                  dbo
 
(5 row(s) affected)

C. Použití USER v kombinaci s EXECUTE AS

Následující příklad ilustruje chování při USER volání uvnitř simulované relace.

SELECT USER;  
GO  
EXECUTE AS USER = 'Mario';  
GO  
SELECT USER;  
GO  
REVERT;  
GO  
SELECT USER;  
GO  

Tady je soubor výsledků.

DBO
Mario
DBO

Viz také

ZMĚNIT TABULKU (Transact-SQL)
VYTVOŘIT TABULKU (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
Funkce zabezpečení (Transact-SQL)
SESSION_USER (Transact-SQL)
SYSTEM_USER (Transact-SQL)
USER_NAME (Transact-SQL)