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
Azure SQL Managed Instance
Azure Synapse Analytics
Endpoint de análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Base 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 DEFAULT restriçã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