SUSER_SNAME (Transact-SQL)

Aplica-se a: SQL ServerBase de Dados SQL do AzureAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics endpoint em Microsoft FabricWarehouse em Microsoft FabricSQL database em Microsoft Fabric

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 sidsys.server_principals as sys.sql_logins 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 é suportado em bases de Base de Dados SQL do Azure ou SQL em Microsoft Fabric.

Tipo de retorno

nvarchar(128)

Observações

SUSER_SNAMEpode ser usado como uma DEFAULT restrição em qualquer um ou ALTER TABLECREATE 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. Use SUSER_SNAME como DEFAULT restrição

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. Chamar 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