Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Analytics Platform System (PDW)
Ponto de extremidade de análise de SQL no Microsoft Fabric
Depósito no Microsoft Fabric
Banco de dados SQL no Microsoft Fabric
Retorna um nome de usuário do banco de dados a partir de um número de identificação especificado ou o nome de usuário atual.
Convenções de sintaxe de Transact-SQL
Sintaxe
USER_NAME ( [ ID ] )
Argumentos
ID
O número de identificação associado a um usuário de banco de dados, conforme listado em sys.database_principals. ID é int. Os parênteses são necessários.
Tipos de retorno
nvarchar(128)
Comentários
Quando ID é omitido, o usuário atual no contexto atual é assumido. Se o parâmetro contiver a palavra NULL, USER_NAME retornará NULL. Quando USER_NAME é chamado sem especificar um ID após uma instrução EXECUTE AS, USER_NAME retorna o nome do usuário impessoal. Se um principal do Windows acessar o banco de dados por meio da associação em um grupo, USER_NAME retornará o principal do Windows em vez do grupo.
Embora a função USER_NAME() tenha suporte no Banco de Dados SQL do Azure, não há suporte para o uso de EXECUTE AS USER = USER_NAME(n) no Banco de Dados SQL do Azure.
Exemplos
R. Usar USER_NAME() para identificar uma ID de usuário
O exemplo a seguir retorna o nome de usuário do ID de usuário 13, conforme listado em sys.database_principals.
SELECT USER_NAME(13);
GO
B. Usar USER_NAME sem uma ID
O exemplo a seguir localiza o nome do usuário atual sem especificar um ID.
SELECT USER_NAME();
GO
Este é o conjunto de resultados para um usuário que é um membro da função de servidor fixa sysadmin.
dbo
C. Usar USER_NAME na cláusula WHERE
O exemplo a seguir localiza a linha em sys.database_principals na qual o nome é igual ao resultado da aplicação da função de sistema USER_NAME ao número de identificação de usuário 1.
SELECT name FROM sys.database_principals WHERE name = USER_NAME(1);
GO
Veja a seguir o conjunto de resultados.
name
------------------------------
dbo
(1 row(s) affected)
D. Chamar USER_NAME durante a representação com EXECUTE AS
O exemplo a seguir mostra como USER_NAME se comporta durante representação.
EXECUTE AS não é atualmente compatível com o Microsoft Fabric.
Cuidado
Ao testar com EXECUTE AS, sempre crie um script REVERT para seguir.
SELECT USER_NAME();
GO
EXECUTE AS USER = 'Zelig';
GO
SELECT USER_NAME();
GO
REVERT;
GO
SELECT USER_NAME();
GO
Veja a seguir o conjunto de resultados.
-------------
dbo
-------------
Zelig
-------------
dbo
Exemplos: Azure Synapse Analytics e PDW (Analytics Platform System)
E. Usar USER_NAME sem uma ID
O exemplo a seguir localiza o nome do usuário atual sem especificar um ID.
SELECT USER_NAME();
Este é o conjunto de resultados para um usuário conectado no momento.
User7
F. Usar USER_NAME na cláusula WHERE
O exemplo a seguir localiza a linha em sysusers na qual o nome é igual ao resultado da aplicação da função de sistema USER_NAME ao número de identificação de usuário 1.
SELECT name FROM sysusers WHERE name = USER_NAME(1);
Veja a seguir o conjunto de resultados.
name
------------------------------
User7
Conteúdo relacionado
- SUSER_NAME (Transact-SQL)
- SUSER_SNAME (Transact-SQL)
- ALTERAR TABELA (Transact-SQL)
- CRIAR TABELA (Transact-SQL)
- CURRENT_TIMESTAMP (Transact-SQL)
- CURRENT_USER (Transact-SQL)
- SESSION_USER (Transact-SQL)
- Funções de sistema (Transact-SQL)
- SYSTEM_USER (Transact-SQL)
- sys.database_principals (Transact-SQL).