USER_NAME (Transact-SQL)
Возвращает имя пользователя базы данных по указанному идентификационному номеру.
Синтаксические обозначения в Transact-SQL
Синтаксис
USER_NAME ( [ id ] )
Аргументы
- id
Идентификационный номер, ассоциированный с пользователем базы данных. Аргумент id имеет тип int. Скобки обязательны.
Типы возвращаемых данных
nvarchar(128)
Замечания
Когда параметр id не указывается, подразумевается контекст текущего пользователя. При использовании функции USER_NAME без указания id после инструкции EXECUTE AS функция USER_NAME возвращает имя олицетворенного пользователя. Если пользователь Windows попытается получить доступ к базе данных в качестве члена группы, функция USER_NAME вернет имя этого пользователя, а не имя группы.
Примеры
A. Использование USER_NAME
Следующий пример возвращает имя пользователя по его идентификатору 13
.
SELECT USER_NAME(13);
GO
Б. Использование USER_NAME без идентификатора
Следующий пример демонстрирует поиск имени текущего пользователя без указания его идентификатора.
SELECT USER_NAME();
GO
Далее приведен результирующий набор для пользователя, который является членом фиксированной серверной роли sysadmin.
------------------------------
dbo
(1 row(s) affected)
В. Использование USER_NAME в предложении WHERE
Следующий пример иллюстрирует поиск в таблице sysusers
строки, имя которой равняется результату работы системной функции USER_NAME
для пользователя с идентификационным номером, равным 1
.
SELECT name FROM sysusers WHERE name = USER_NAME(1);
GO
Ниже приводится результирующий набор.
name
------------------------------
dbo
(1 row(s) affected)
Г. Вызов USER_NAME во время олицетворения пользователя с помощью EXECUTE AS
Следующий пример показывает, как USER_NAME
ведет себя во время олицетворения пользователя.
SELECT USER_NAME();
GO
EXECUTE AS USER = 'Zelig';
GO
SELECT USER_NAME();
GO
REVERT;
GO
SELECT USER_NAME();
GO
Ниже приводится результирующий набор.
DBO
Zelig
DBO
См. также
Справочник
ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
SESSION_USER (Transact-SQL)
Системные функции (Transact-SQL)
SYSTEM_USER (Transact-SQL)