SUSER_SNAME (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punto de conexión de análisis SQL en Microsoft FabricAlmacenamiento en Microsoft Fabric

Devuelve el nombre de inicio de sesión asociado a un número de identificación de seguridad (SID).

Convenciones de sintaxis de Transact-SQL

Sintaxis

SUSER_SNAME ( [ server_user_sid ] )

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

server_user_sid

Número de identificación opcional de seguridad del inicio de sesión. server_user_sid es varbinary(85). server_user_sid puede ser el número de identificación de seguridad de cualquier inicio de sesión de SQL Server, o de un usuario o grupo de Microsoft Windows. Consulte la columna sid en las vistas de catálogo sys.server_principals o sys.sql_logins. Si no se especifica server_user_sid, se devuelve información acerca del usuario actual. Si el parámetro contiene la palabra NULL, SUSER_SNAME devuelve NULL.

server_user_sid no se admite en Azure SQL Database.

Tipo de valor devuelto

nvarchar(128)

Comentarios

SUSER_SNAME se puede usar como una restricción DEFAULT en ALTER TABLE o CREATE TABLE. Se puede utilizar SUSER_SNAME en una lista de selección, en una cláusula WHERE y en cualquier lugar en el que se permita una expresión. SUSER_SNAME siempre debe ir seguido de paréntesis, aunque no se especifique ningún parámetro.

Si se llama sin un argumento, SUSER_SNAME devuelve el nombre del contexto de seguridad actual. Si se llama sin un argumento en un lote que ha cambiado de contexto mediante EXECUTE AS, SUSER_SNAME devuelve el nombre del contexto suplantado. Cuando se llama desde un contexto suplantado, ORIGINAL_LOGIN devuelve el nombre del contexto original.

Comentarios de Azure SQL Database

SUSER_SNAME siempre devuelve el nombre de inicio de sesión del contexto de seguridad actual.

La instrucción SUSER_SNAME no admite la ejecución con un contexto de seguridad suplantado a través de EXECUTE AS.

SUSER_SNAME no admite el argumento server_user_id.

Ejemplos

A. Uso de SUSER_SNAME

En el ejemplo siguiente se devuelve el nombre de inicio de sesión para el contexto de seguridad actual.

SELECT SUSER_SNAME();
GO

B. Uso de SUSER_SNAME con un identificador de seguridad de usuario de Windows

En el siguiente ejemplo se devuelve el nombre de inicio de sesión asociado a un número de identificación de seguridad de Windows.

SELECT SUSER_SNAME(0x010500000000000515000000a065cf7e784b9b5fe77c87705a2e0000);
GO

C. Uso de SUSER_SNAME como una restricción DEFAULT

En el ejemplo siguiente se utiliza SUSER_SNAME como restricción DEFAULT en una instrucción 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. Llamada a SUSER_SNAME junto con EXECUTE AS

En este ejemplo se muestra el comportamiento de SUSER_SNAME si se llama desde un contexto suplantado.

SELECT SUSER_SNAME();
GO

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

REVERT;
GO

SELECT SUSER_SNAME();
GO

Este es el resultado.

sa
WanidaBenShoof
sa

Ejemplos: Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)

E. Uso de SUSER_SNAME

En el ejemplo siguiente se obtiene el nombre de inicio de sesión que corresponde al número de identificación de seguridad con un valor de 0x01.

SELECT SUSER_SNAME(0x01);
GO

F. Devolución del inicio de sesión actual

En el ejemplo siguiente se devuelve el nombre de inicio de sesión del inicio de sesión actual.

SELECT SUSER_SNAME() AS CurrentLogin;
GO