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 temas Convenciones 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. Si el parámetro contiene la palabra NULL, se devolverá NULL.

Tipos de valor devuelto

nvarchar(128)

Comentarios

SUSER_SNAME puede usarse 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.Usar 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.Usar 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.Usar 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 AdventureWorks2012;
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 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

Éste es el resultado.

sa

WanidaBenShoof

sa

Vea también

Referencia

SUSER_SID (Transact-SQL)

sys.server_principals (Transact-SQL)

Conceptos

Entidades de seguridad (motor de base de datos)