SUSER_SNAME (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечной точке аналитики платформы Аналитики Azure Synapse Analytics (PDW) в Microsoft Fabric Хранилище в Microsoft Fabric
Возвращает имя входа, связанное с идентификатором безопасности (SID).
Соглашения о синтаксисе Transact-SQL
Синтаксис
SUSER_SNAME ( [ server_user_sid ] )
Аргументы
server_user_sid
Необязательный идентификационный номер безопасности для входа. Аргумент server_user_sid имеет тип varbinary(85). server_user_sid может быть идентификатором безопасности любого пользователя или группы SQL Server. Обратитесь к столбцу sid
в sys.server_principals
представлениях каталога или sys.sql_logins
столбца. Если server_user_sid не указан, возвращается информация о текущем пользователе. Если параметр содержит слово NULL
, SUSER_SNAME
возвращается NULL
.
server_user_sid не поддерживается в База данных SQL Azure.
Возвращаемый тип
nvarchar(128)
Замечания
SUSER_SNAME
можно использовать в качестве ограничения DEFAULT в любом ALTER TABLE
или CREATE TABLE
. SUSER_SNAME
можно использовать в списке выбора в предложении WHERE и в любом месте, где разрешено выражение. SUSER_SNAME
всегда следует за скобками, даже если параметр не указан.
При вызове без аргумента SUSER_SNAME
возвращает имя текущего контекста безопасности. При вызове без аргумента в пакете, который переключил контекст с помощью EXECUTE AS
, SUSER_SNAME
возвращает имя олицетворенного контекста. При вызове из олицетворенного контекста ORIGINAL_LOGIN
возвращает имя исходного контекста.
База данных SQL Azure примечания
SUSER_SNAME
всегда возвращает имя входа для текущего контекста безопасности.
Инструкция SUSER_SNAME
не поддерживает выполнение с использованием олицетворенного контекста безопасности через EXECUTE AS.
SUSER_SNAME
не поддерживает аргумент server_user_id .
Примеры
А. Использование SUSER_SNAME
В следующем примере возвращается имя входа для текущего контекста безопасности.
SELECT SUSER_SNAME();
GO
B. Использование SUSER_SNAME с идентификатором безопасности пользователя Windows
Следующий пример возвращает имя входа, связанное с номером идентификатора безопасности Windows.
SELECT SUSER_SNAME(0x010500000000000515000000a065cf7e784b9b5fe77c87705a2e0000);
GO
В. Использование SUSER_SNAME в качестве ограничения DEFAULT
В следующем примере в инструкции CREATE TABLE
используется SUSER_SNAME
ограничение DEFAULT.
USE AdventureWorks2022;
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
D. Вызов 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
Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)
Е. Использование SUSER_SNAME
Следующий пример возвращает имя входа для номера идентификатора безопасности со значением 0x01
.
SELECT SUSER_SNAME(0x01);
GO
F. Возврат текущего имени входа
В приведенном ниже примере возвращается текущее имя для входа.
SELECT SUSER_SNAME() AS CurrentLogin;
GO