Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
Azure Synapse Analytics
Система платформы аналитики (PDW)
Конечная точка аналитики SQL в Microsoft Fabric
Хранилище в Microsoft Fabric
База данных SQL в предварительном просмотре 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 или базе данных SQL в предварительной версии Microsoft Fabric.
Возвращаемый тип
nvarchar(128)
Замечания
SUSER_SNAME можно использовать как DEFAULT ограничение в любом ALTER TABLE или CREATE TABLE.
SUSER_SNAME можно использовать в списке выбора, в WHERE предложении и в любом месте, где разрешено выражение.
SUSER_SNAME всегда следует за скобками, даже если параметр не указан.
При вызове без аргумента SUSER_SNAME возвращает имя текущего контекста безопасности. При вызове без аргумента в пакете, который переключил контекст с помощью EXECUTE AS, SUSER_SNAME возвращает имя олицетворенного контекста. При вызове из олицетворенного контекста ORIGINAL_LOGIN возвращает имя исходного контекста.
Примечания для базы данных SQL Azure, базы данных SQL в Fabric
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_SNAMEDEFAULT ограничение.
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