SUSER_SNAME (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System) Ponto de extremidade de análise do SQL Warehouse no Microsoft Fabric
Retorna o nome de logon associado a um número de identificação de segurança (SID).
Convenções de sintaxe de Transact-SQL
Sintaxe
SUSER_SNAME ( [ server_user_sid ] )
Argumentos
server_user_sid
O número opcional de identificação de segurança do logon. server_user_sid é varbinary(85). server_user_sid pode ser o número de identificação de segurança de qualquer logon do SQL Server, ou usuário ou grupo do Windows Microsoft. Consulte a coluna sid
nas exibições de catálogo sys.server_principals
ou sys.sql_logins
. Se server_user_sid não estiver especificado, serão retornadas informações sobre o usuário atual. Se o parâmetro contiver a palavra NULL
, SUSER_SNAME
retornará NULL
.
server_user_sid não tem suporte no Banco de Dados SQL do Azure.
Tipo de retorno
nvarchar(128)
Comentários
SUSER_SNAME
pode ser usado como uma restrição DEFAULT em ALTER TABLE
ou em CREATE TABLE
. SUSER_SNAME
pode ser usado em uma lista de seleção, em uma cláusula WHERE ou em qualquer local em que uma expressão seja permitida. SUSER_SNAME
deve ser sempre seguido de parênteses, mesmo que nenhum parâmetro seja especificado.
Quando chamado sem um argumento, SUSER_SNAME
retorna o nome do contexto de segurança atual. Quando chamado sem um argumento em um lote que alternou o contexto usando EXECUTE AS
, SUSER_SNAME
retorna o nome do contexto representado. Quando chamado de um contexto representado, ORIGINAL_LOGIN
retorna o nome do contexto original.
Comentários do Banco de Dados SQL do Azure
SUSER_SNAME
sempre retorna o nome de logon do contexto de segurança atual.
A instrução SUSER_SNAME
não dá suporte à execução usando um contexto de segurança representado por meio de EXECUTE AS.
SUSER_SNAME
não dá suporte ao argumento server_user_id.
Exemplos
a. Usar SUSER_SNAME
O exemplo a seguir retorna o nome de logon para o contexto de segurança atual.
SELECT SUSER_SNAME();
GO
B. Usar SUSER_SNAME com um ID de segurança de usuário do Windows
O exemplo seguinte retorna o nome de logon associado a um número de identificação de segurança do Windows.
SELECT SUSER_SNAME(0x010500000000000515000000a065cf7e784b9b5fe77c87705a2e0000);
GO
C. Usar SUSER_SNAME como uma restrição DEFAULT
O exemplo a seguir usa SUSER_SNAME
como uma restrição DEFAULT em uma instrução CREATE TABLE
.
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. Chamar SUSER_SNAME com EXECUTE AS
Este exemplo mostra o comportamento de SUSER_SNAME
quando chamado por meio de um contexto representado.
SELECT SUSER_SNAME();
GO
EXECUTE AS LOGIN = 'WanidaBenShoof';
SELECT SUSER_SNAME();
REVERT;
GO
SELECT SUSER_SNAME();
GO
Este é o conjunto de resultados.
sa
WanidaBenShoof
sa
Exemplos: Azure Synapse Analytics e PDW (Analytics Platform System)
E. Usar SUSER_SNAME
O exemplo seguinte retorna o nome de logon do número de identificação de segurança com um valor de 0x01
.
SELECT SUSER_SNAME(0x01);
GO
F. Retornar o logon atual
O exemplo a seguir retorna o nome de logon do logon atual.
SELECT SUSER_SNAME() AS CurrentLogin;
GO