Поделиться через


USER_NAME (Transact-SQL)

Возвращает имя пользователя базы данных по указанному идентификационному номеру.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

USER_NAME ( [ id ] )

Аргументы

  • id
    Идентификационный номер, ассоциированный с пользователем базы данных. Аргумент id имеет тип int. Необходимо поставить скобки.

Типы возвращаемых данных

nvarchar(256)

Замечания

Если параметр id не указан, подразумевается контекст текущего пользователя. Если содержит слово NULL, возвращается значение NULL. При использовании функции 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