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


SUSER_SNAME (Transact-SQL)

Возвращает имя входа, связанное с идентификатором безопасности (SID).

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

Синтаксис

SUSER_SNAME ( [ server_user_sid ] ) 

Аргументы

  • server_user_sid
    Номер идентификатора безопасности имени входа. Параметр server_user_sid (необязательный) имеет тип varbinary(85). Аргумент server_user_sid может быть номером идентификатора безопасности любого имени входа SQL Server либо пользователя или группы Microsoft Windows. Если аргумент server_user_sid не указан, будут возвращены сведения о текущем пользователе. Если параметр содержит слово NULL, то возвращается NULL.

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

nvarchar(128)

Замечания

Функция SUSER_SNAME может применяться как ограничение DEFAULT в инструкциях ALTER TABLE и CREATE TABLE. Функция SUSER_SNAME может применяться в списке выбора, в предложении WHERE и в выражении, где это допустимо. За функцией SUSER_SNAME всегда должны следовать круглые скобки, даже если не указано никаких параметров.

При вызове без аргумента функция SUSER_SNAME возвращает название текущего контекста безопасности. При вызове без аргумента в пределах пакета, который переключил контекст с помощью EXECUTE AS, функция SUSER_SNAME возвращает название олицетворенного контекста. При вызове из олицетворенного контекста функция ORIGINAL_LOGIN возвращает название оригинального контекста.

Примеры

А.Использование параметра SUSER_SNAME

Следующий пример возвращает имя входа для номера идентификатора безопасности со значением 0x01.

SELECT SUSER_SNAME(0x01);
GO

Б.Использование параметра SUSER_SNAME с идентификатором безопасности пользователя Windows

Следующий пример возвращает имя входа, связанное с номером идентификатора безопасности Windows.

SELECT SUSER_SNAME(0x010500000000000515000000a065cf7e784b9b5fe77c87705a2e0000);
GO

В.Использование параметра SUSER_SNAME в качестве ограничения DEFAULT

Следующий пример использует функцию SUSER_SNAME в качестве ограничения DEFAULT в инструкции CREATE TABLE.

USE AdventureWorks2012;
GO
CREATE TABLE sname_example
(
login_sname sysname DEFAULT SUSER_SNAME(),
employee_id uniqueidentifier DEFAULT NEWID(),
login_date  datetime DEFAULT GETDATE()
); 
GO
INSERT sname_example DEFAULT VALUES;
GO

Г.Вызов функции SUSER_SNAME в сочетании с EXECUTE AS

Этот пример показывает поведение функции SUSER_SNAME при вызове из олицетворенного контекста.

SELECT SUSER_SNAME();
GO
EXECUTE AS LOGIN = 'WanidaBenShoof';
SELECT SUSER_SNAME();
REVERT;
GO
SELECT SUSER_SNAME();
GO

Ниже приводится результат.

sa

WanidaBenShoof

sa

См. также

Справочник

SUSER_SID (Transact-SQL)

sys.server_principals (Transact-SQL)

Основные понятия

Участники (компонент Database Engine)