USER_NAME (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Devuelve un nombre de usuario de base de datos a partir de un número de identificación especificado.

Convenciones de sintaxis de Transact-SQL

Sintaxis

USER_NAME ( [ id ] )  

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

id
Es el número de identificación asociado a un usuario de la base de datos. id es int. Es obligatorio utilizar paréntesis.

Tipos de valor devuelto

nvarchar(128)

Comentarios

Cuando se omite id, se supone que se trata del usuario actual en el contexto actual. Si el parámetro contiene la palabra NULL, se devolverá NULL. Cuando se llama a USER_NAME sin especificar un id después de una instrucción EXECUTE AS, USER_NAME devuelve el nombre del usuario representado. Si una entidad de seguridad de Windows ha tenido acceso a la base de datos en forma de miembro de un grupo, USER_NAME devuelve el nombre de la entidad de seguridad de Windows en vez del nombre del grupo.

Nota:

Aunque la función USER_NAME se admite en Azure SQL Database, no se admite el uso de Ejecutar como con USER_NAME.

Ejemplos

A. Usar USER_NAME

En el siguiente ejemplo se devuelve el nombre de usuario del Id. de usuario 13.

SELECT USER_NAME(13);  
GO  

B. Usar USER_NAME sin un identificador

En el siguiente ejemplo se busca el nombre del usuario actual sin especificar un identificador.

SELECT USER_NAME();  
GO  

Este es el conjunto de resultados para un usuario que pertenezca al rol fijo de servidor sysadmin.

------------------------------  
dbo  
 
(1 row(s) affected)

C. Usar USER_NAME en la cláusula WHERE

En el siguiente ejemplo se busca la fila en sysusers en la que el nombre sea igual al resultado de aplicar la función del sistema USER_NAME al número de identificador de usuario 1.

SELECT name FROM sysusers WHERE name = USER_NAME(1);  
GO  

El conjunto de resultados es el siguiente:

name  
------------------------------  
dbo  
 
(1 row(s) affected)

D. Llamar a USER_NAME durante la suplantación con EXECUTE AS

En el siguiente ejemplo se muestra cómo se comporta USER_NAME durante la suplantación.

SELECT USER_NAME();  
GO  
EXECUTE AS USER = 'Zelig';  
GO  
SELECT USER_NAME();  
GO  
REVERT;  
GO  
SELECT USER_NAME();  
GO  

El conjunto de resultados es el siguiente:

DBO  
Zelig  
DBO

Ejemplos: Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)

E. Usar USER_NAME sin un identificador

En el siguiente ejemplo se busca el nombre del usuario actual sin especificar un identificador.

SELECT USER_NAME();  

Este es el conjunto de resultados para un usuario que tiene la sesión iniciada.

------------------------------   
User7                              

F. Usar USER_NAME en la cláusula WHERE

En el siguiente ejemplo se busca la fila en sysusers en la que el nombre sea igual al resultado de aplicar la función del sistema USER_NAME al número de identificador de usuario 1.

SELECT name FROM sysusers WHERE name = USER_NAME(1);  

El conjunto de resultados es el siguiente:

name                             
------------------------------   
User7                              

Consulte también

ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
SESSION_USER (Transact-SQL)
Funciones del sistema (Transact-SQL)
SYSTEM_USER (Transact-SQL)