SUSER_SNAME (Transact-SQL)
Возвращает имя входа, связанное с идентификатором безопасности (SID).
Синтаксис
SUSER_SNAME ( [ server_user_sid ] )
Аргументы
- server_user_sid
Номер идентификатора безопасности имени входа. Необязательный аргумент server_user_sid имеет тип varbinary(85). Аргумент server_user_sid может быть номером идентификатора безопасности любого имени входа SQL Server, пользователя или группы Microsoft Windows. Если аргумент server_user_sid не указан, будут возвращены сведения о текущем пользователе.
Типы возвращаемых данных
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 AdventureWorks;
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
См. также