Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Относится к:SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
Azure Synapse Analytics
Аналитическая платформа (PDW)
SQL база данных в Microsoft Fabric
Позволяет вставлять в таблицу предоставляемое системой имя текущего пользователя базы данных, если не указано значение по умолчанию.
Соглашения о синтаксисе Transact-SQL
Синтаксис
USER
Типы возвращаемых данных
nvarchar(128)
Замечания
USER обеспечивает ту же функциональность, что и функция USER_NAME системы.
Используйте USER с DEFAULT ограничениями в операторах CREATE TABLE или ALTER TABLE используйте как любую стандартную функцию.
USER всегда возвращает имя текущего контекста. При вызове после EXECUTE AS оператора возвращается USER имя имитируемого контекста.
Если руководитель Windows обращается к базе данных через членство в группе, USER возвращается имя принципала Windows вместо названия группы.
Примеры
А. Использование USER для возврата имени пользователя базы данных
Следующий пример объявляет переменную как char, присваивает ей текущее значение USER , а затем печатает переменную с текстовым описанием.
DECLARE @usr CHAR(30)
SET @usr = user
SELECT 'The current user''s database username is: '+ @usr
GO
Вот результирующий набор.
-----------------------------------------------------------------------
The current user's database username is: dbo
(1 row(s) affected)
B. Использование USER с DEFAULT ограничениями
В следующем примере создается таблица с использованием функции USER в ограничении DEFAULT для столбца менеджеров по продажам.
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
Ниже приведен запрос для получения всех данных из таблицы inventory22:
SELECT * FROM inventory22 ORDER BY part_id;
GO
Результирующий набор (обратите внимание на значение столбца 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)
В. Использование USER в сочетании с EXECUTE AS
Следующий пример иллюстрирует работу функции USER при вызове из сеанса олицетворения.
SELECT USER;
GO
EXECUTE AS USER = 'Mario';
GO
SELECT USER;
GO
REVERT;
GO
SELECT USER;
GO
Вот результирующий набор.
DBO
Mario
DBO
См. также
ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
Функция безопасности (Transact-SQL)
SESSION_USER (Transact-SQL)
SYSTEM_USER (Transact-SQL)
USER_NAME (Transact-SQL)