SUSER_SNAME (Transact-SQL)
Se aplica a: punto de conexión de SQL Server
Azure SQL Database
Azure SQL Instancia administrada
punto de conexión de SQL Analytics Analytics Platform System (PDW) de SQL Analytics
System (PDW)
de SQL Server en Microsoft Fabric
Warehouse en 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 ] )
Nota:
Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.
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.
Tipo de valor devuelto
nvarchar(128)
Comentarios
SUSER_SNAME
se puede usar como una restricción DEFAULT en ALTER TABLE
o CREATE TABLE
. Se puede utilizar SUSER_SNAME
en una lista de selección, en una cláusula WHERE y en cualquier lugar en el que 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
SUSER_SNAME
siempre devuelve el nombre de inicio de sesión del contexto de seguridad actual.
La instrucción SUSER_SNAME
no admite la ejecución con un contexto de seguridad suplantado a través de EXECUTE AS.
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 utiliza SUSER_SNAME
como restricción DEFAULT en una instrucción CREATE TABLE
.
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