Partilhar via


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 de SQL no Microsoft Fabric 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 ] )

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