SUSER_SNAME (Transact-SQL)
Devuelve el nombre de inicio de sesión asociado a un número de identificación de seguridad (SID).
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.
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 ejemplo siguiente se utiliza SUSER_SNAME como restricción DEFAULT en una instrucción CREATE TABLE.
USE AdventureWorks2008R2; 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 el ejemplo siguiente se muestra el comportamiento de SUSER_SNAME cuando 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
