SUSER_SNAME (Transact-SQL)
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
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
Vea también
Referencia
SUSER_SID (Transact-SQL)
sys.server_principals (Transact-SQL)