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)

Другие ресурсы

Изменение свойств столбцов

Справка и поддержка

Получение помощи по SQL Server 2005