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