Compartir a través de


SUSER_SNAME (Transact-SQL)

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

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

SUSER_SNAME ( [ server_user_sid ] ) 

Argumentos

  • server_user_sid
    Se trata del número de identificación de seguridad del inicio de sesión. server_user_sid, que es opcional, es de tipo 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. Si no se especifica server_user_sid, se devuelve información acerca del usuario actual.

Tipos de valor devueltos

nvarchar(128)

Notas

SUSER_SNAME puede utilizarse como una restricción DEFAULT en ALTER TABLE o CREATE TABLE. Se puede utilizar SUSER_SNAME en una lista de selección, en la cláusula WHERE y en cualquier lugar en el que se permita una expresión. SUSER_SNAME siempre debe ir seguida 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. Si se llama desde un contexto suplantado, ORIGINAL_LOGIN devuelve el nombre del contexto original.

Ejemplos

A. Utilizar 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

B. Utilizar SUSER_SNAME con un Id. 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. Utilizar SUSER_SNAME como una restricción DEFAULT

En el siguiente ejemplo se utiliza SUSER_SNAME como una restricción DEFAULT de una instrucción CREATE TABLE.

USE AdventureWorks;
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. Llamar a SUSER_SNAME en combinación 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

Éste es el resultado.

sa

WanidaBenShoof

sa