Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к: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