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í pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics 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.
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)