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:Banco de Dados SQL do
Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Analytics Platform System (PDW)
Banco de Dados SQL no Microsoft Fabric
Esta função devolve o nome do utilizador atual. Esta função é equivalente a USER_NAME().
Transact-SQL convenções de sintaxe
Sintaxe
CURRENT_USER
Tipos de devolução
sysname
Observações
CURRENT_USER devolve o nome do contexto de segurança atual. Se CURRENT_USER for executado após uma chamada ao EXECUTE AS contexto dos switches, CURRENT_USER devolverá o nome do contexto personificado. Se um principal do Windows aceder à base de dados através da pertença a um grupo, CURRENT_USER devolverá o nome do principal do Windows em vez do nome do grupo.
Consulte SUSER_NAME (Transact-SQL) e SYSTEM_USER (Transact-SQL) para saber como devolver o login do utilizador atual.
Examples
A. Usar CURRENT_USER para devolver o nome de utilizador atual
Este exemplo devolve o nome do utilizador atual.
SELECT CURRENT_USER;
GO
B. Usar CURRENT_USER como restrição PADRÃO
Este exemplo cria uma tabela que usa CURRENT_USER como DEFAULT restrição, para a order_person coluna, numa linha de vendas.
USE AdventureWorks2022;
GO
IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'orders22')
DROP TABLE orders22;
GO
SET NOCOUNT ON;
CREATE TABLE orders22
(
order_id int IDENTITY(1000, 1) NOT NULL,
cust_id int NOT NULL,
order_date smalldatetime NOT NULL DEFAULT GETDATE(),
order_amt money NOT NULL,
order_person char(30) NOT NULL DEFAULT CURRENT_USER
);
GO
Este exemplo insere um registo na tabela. O utilizador nomeado Wanida executa estas declarações.
INSERT orders22 (cust_id, order_amt)
VALUES (5105, 577.95);
GO
SET NOCOUNT OFF;
GO
Esta consulta seleciona toda a informação da orders22 tabela.
SELECT * FROM orders22;
GO
Aqui está o conjunto de resultados.
order_id cust_id order_date order_amt order_person
----------- ----------- -------------------- ------------ ------------
1000 5105 2005-04-03 23:34:00 577.95 Wanida
(1 row(s) affected)
C. Usando CURRENT_USER de um contexto personificado
Neste exemplo, o utilizador Wanida executa o seguinte código Transact-SQL para se fazer passar pelo utilizador 'Arnalfo'.
SELECT CURRENT_USER;
GO
EXECUTE AS USER = 'Arnalfo';
GO
SELECT CURRENT_USER;
GO
REVERT;
GO
SELECT CURRENT_USER;
GO
Aqui está o conjunto de resultados.
Wanida
Arnalfo
Wanida
Consulte também
USER_NAME (Transact-SQL)
SYSTEM_USER (Transact-SQL)
sys.database_principals (Transact-SQL)
ALTERAR TABELA (Transact-SQL)
CRIAR TABELA (Transact-SQL)
Funções do sistema (Transact-SQL)