Compartir por


SUSER_SNAME (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseInstancia administrada de Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Punto de conexión de SQL Analytics en Microsoft FabricAlmacén de datos en Microsoft FabricBase de datos SQL en la versión preliminar de 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 ] )

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 ni en SQL Database en la versión preliminar de Microsoft Fabric.

Tipo de valor devuelto

nvarchar(128)

Comentarios

SUSER_SNAME se puede usar como restricción DEFAULT en ALTER TABLE o CREATE TABLE. SUSER_SNAME se puede usar en una lista de selección, en una WHERE cláusula y en cualquier lugar donde 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, SQL Database en Fabric

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

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

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 usa SUSER_SNAME como restricción DEFAULT en una CREATE TABLE instrucción .

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