Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Database w Microsoft Fabric
Pozwala na wstawienie wartości użytkownika bazy danych aktualnego użytkownika do tabeli, gdy nie podano wartości domyślnej.
Transact-SQL konwencje składni
Składnia
USER
Typy zwracane
nvarchar(128)
Uwagi
USER zapewnia tę samą funkcjonalność co USER_NAME funkcja systemowa.
Użyj USER z ograniczeniami DEFAULT w instrukcjach CREATE TABLE lub ALTER TABLE, albo jako dowolną standardową funkcję.
USER zawsze zwraca nazwę bieżącego kontekstu. Po wywołaniu po wykonaniu instrukcji EXECUTE AS, USER zwraca nazwę podszywanego kontekstu.
Jeśli główny użytkownik Windows uzyska dostęp do bazy danych poprzez członkostwo w grupie, USER zwraca nazwę głównej osoby z Windows zamiast nazwy grupy.
Przykłady
A. Używanie USER do zwracania nazwy użytkownika bazy danych
Poniższy przykład deklaruje zmienną jako char, przypisuje jej aktualną wartość USER, a następnie drukuje tę zmienną z opisem tekstowym.
DECLARE @usr CHAR(30)
SET @usr = user
SELECT 'The current user''s database username is: '+ @usr
GO
Oto zestaw wyników.
-----------------------------------------------------------------------
The current user's database username is: dbo
(1 row(s) affected)
B. Używanie USER z ograniczeniami DOMYŚLNYMI
Poniższy przykład tworzy tabelę, używając USER jako ograniczenia DEFAULT dla sprzedawcy wiersza sprzedaży.
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
To jest zapytanie do wyboru wszystkich informacji z tabeli inventory22 :
SELECT * FROM inventory22 ORDER BY part_id;
GO
Oto zbiór wyników (zwróć uwagę na wartość 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. Używanie USER w połączeniu z EXECUTE AS
Poniższy przykład ilustruje zachowanie podczas USER wywoływania w sesji podszywanej pod siebie.
SELECT USER;
GO
EXECUTE AS USER = 'Mario';
GO
SELECT USER;
GO
REVERT;
GO
SELECT USER;
GO
Oto zestaw wyników.
DBO
Mario
DBO
Zobacz też
ZMIEŃ TABELĘ (Transact-SQL)
CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
Funkcje zabezpieczeń (Transact-SQL)
SESSION_USER (Transact-SQL)
SYSTEM_USER (Transact-SQL)
USER_NAME (Transact-SQL)