Notatka
Dostęp do tej strony wymaga autoryzacji. Może 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 funkcja systemu USER_NAME.
Użyć USER z DEFAULT ograniczeniami w instrukcjach CREATE TABLE or ALTER TABLE lub użyć jako dowolnej funkcji standardowej.
USER zawsze zwraca nazwę bieżącego kontekstu. Po wywołaniu EXECUTE AS po wywołaniu zwraca USER nazwę podszytego kontekstu.
Jeśli podmiot Windows uzyska dostęp do bazy danych poprzez członkostwo w grupie, USER zwraca nazwę podmiotu Windows zamiast nazwy grupy.
Przykłady
A. Używanie USER do zwracania nazwy użytkownika bazy danych
Poniższy przykład deklaruje zmienną jako , charprzypisuje jej aktualną wartość USER , a następnie drukuje 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życie USER z DEFAULT ograniczeniami
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żywając 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ż
ALTER TABLE (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)