Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Base de Dados SQL do Azure
Instância Gerida do Azure SQL
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Ponto de Extremidade de Análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Base de Dados SQL no Microsoft Fabric
Devolve um nome de utilizador da base de dados a partir de um número de identificação especificado, ou do nome de utilizador atual.
Transact-SQL convenções de sintaxe
Sintaxe
USER_NAME ( [ ID ] )
Arguments
ID
O número de identificação associado a um utilizador de base de dados, conforme listado em sys.database_principals. ID é inteligência. Os parênteses são obrigatórios.
Tipos de devolução
nvarchar(128)
Observações
Quando o ID é omitido, assume-se o utilizador atual no contexto atual. Se o parâmetro contiver a palavra NULL, USER_NAME devolverá NULL. Quando USER_NAME é chamado sem especificar um ID após uma EXECUTE AS instrução, USER_NAME retorna o nome do utilizador suplantado. Se um principal do Windows aceder à base de dados através da pertença a um grupo, USER_NAME devolve o nome do principal do Windows em vez do grupo.
Embora a USER_NAME() função seja suportada na Azure SQL Database, a utilização EXECUTE AS USER = USER_NAME(n) não é suportada na Azure SQL Database.
Examples
A. Use USER_NAME() para identificar um ID de utilizador
O exemplo seguinte devolve o nome de utilizador para o ID 13de utilizador, conforme listado em sys.database_principals.
SELECT USER_NAME(13);
GO
B. Use USER_NAME sem identificação
O exemplo seguinte encontra o nome do utilizador atual sem especificar um ID.
SELECT USER_NAME();
GO
Aqui está o conjunto de resultados para um utilizador que é membro do papel fixo de servidor sysadmin.
dbo
C. Use USER_NAME na cláusula WHERE
O exemplo seguinte encontra a linha em sys.database_principals, na qual o nome é igual ao resultado da aplicação da função USER_NAME do sistema ao número 1de identificação do utilizador .
SELECT name FROM sys.database_principals WHERE name = USER_NAME(1);
GO
Aqui está o conjunto de resultados.
name
------------------------------
dbo
(1 row(s) affected)
D. Chamar USER_NAME durante a usurpação de personificação com EXECUTAR AS
O exemplo seguinte mostra como USER_NAME se comporta durante a personificação.
EXECUTE AS atualmente não é suportado no Microsoft Fabric.
Atenção
Ao testar com EXECUTE AS, sempre script a REVERT para seguir.
SELECT USER_NAME();
GO
EXECUTE AS USER = 'Zelig';
GO
SELECT USER_NAME();
GO
REVERT;
GO
SELECT USER_NAME();
GO
Aqui está o conjunto de resultados.
-------------
dbo
-------------
Zelig
-------------
dbo
Exemplos: Azure Synapse Analytics and Analytics Platform System (PDW)
E. Use USER_NAME sem identificação
O exemplo seguinte encontra o nome do utilizador atual sem especificar um ID.
SELECT USER_NAME();
Aqui está o conjunto de resultados para um utilizador atualmente iniciado sessão.
User7
F. Use USER_NAME na cláusula WHERE
O exemplo seguinte encontra a linha em sysusers que o nome é igual ao resultado da aplicação da função USER_NAME do sistema ao número 1de identificação do utilizador .
SELECT name FROM sysusers WHERE name = USER_NAME(1);
Aqui está 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 do sistema (Transact-SQL)
- SYSTEM_USER (Transact-SQL)
- sys.database_principals (Transact-SQL).