Partilhar via


SUSER_SNAME (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseInstância Gerida do Azure SQLAzure Synapse AnalyticsSistema de Plataforma Analítica (PDW)Ponto de extremidade de análise SQL no Microsoft FabricWarehouse no Microsoft FabricBanco de dados SQL no Microsoft Fabric Preview

Retorna o nome de login associado a um número de identificação de segurança (SID).

Transact-SQL convenções de sintaxe

Sintaxe

SUSER_SNAME ( [ server_user_sid ] )

Arguments

server_user_sid

O número de identificação de segurança de login opcional. 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 Microsoft Windows. Consulte a coluna ou sys.server_principalssys.sql_logins as sid exibições de catálogo. Se server_user_sid não for especificado, as informações sobre o usuário atual serão retornadas. Se o parâmetro contiver a palavra NULL, SUSER_SNAME retornará NULL.

server_user_sid não há suporte no Banco de Dados SQL do Azure ou no Banco de Dados SQL no Microsoft Fabric Preview.

Tipo de retorno

nvarchar(128)

Observações

SUSER_SNAMEpode ser usado como uma DEFAULT restrição em qualquer um ou CREATE TABLEALTER TABLE . SUSER_SNAME pode ser usado em uma lista de seleção, em uma WHERE cláusula e em qualquer lugar onde 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 dentro de um lote que mudou de 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 para o Banco de Dados SQL do Azure, banco de dados SQL no Fabric

SUSER_SNAME Sempre retorna o nome de login para o contexto de segurança atual.

A SUSER_SNAME instrução não suporta a execução usando um contexto de segurança representado através do EXECUTE AS.

SUSER_SNAME não apoia o argumento server_user_id .

Examples

A. Utilizar SUSER_SNAME

O exemplo a seguir retorna o nome de login para o contexto de segurança atual.

SELECT SUSER_SNAME();
GO

B. Utilizar SUSER_SNAME com um ID de segurança de utilizador do Windows

O exemplo a seguir 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 DEFAULT restrição em uma CREATE TABLE instrução.

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. Ligue SUSER_SNAME em combinação com EXECUTE AS

Este exemplo mostra o comportamento de SUSER_SNAME quando chamado a partir de um contexto representado.

SELECT SUSER_SNAME();
GO

EXECUTE AS LOGIN = 'WanidaBenShoof';
SELECT SUSER_SNAME();

REVERT;
GO

SELECT SUSER_SNAME();
GO

Eis o resultado.

sa
WanidaBenShoof
sa

Exemplos: Azure Synapse Analytics and Analytics Platform System (PDW)

E. Utilizar SUSER_SNAME

O exemplo a seguir retorna o nome de login para o número de identificação de segurança com um valor de 0x01.

SELECT SUSER_SNAME(0x01);
GO

F. Retornar o login atual

O exemplo a seguir retorna o nome de login do logon atual.

SELECT SUSER_SNAME() AS CurrentLogin;
GO