SUSER_SNAME (Transact-SQL)
Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)Ponto de extremidade de SQL no Microsoft FabricWarehouse 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 ] )
Observação
Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.
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
Conteúdo relacionado
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de