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
SESSION_USER devolve o nome de utilizador do contexto atual na base de dados atual.
Transact-SQL convenções de sintaxe
Sintaxe
SESSION_USER
Tipos de devolução
nvarchar(128)
Observações
Use SESSION_USER com restrições DEFAULT nas instruções CREATE TABLE ou ALTER TABLE, ou utilize-a como qualquer função padrão. SESSION_USER podem ser inseridos numa tabela quando não há valor padrão especificado. Esta função não aceita argumentos. SESSION_USER podem ser usados em consultas.
Se SESSION_USER for chamado após uma troca de contexto, SESSION_USER devolverá o nome de utilizador do contexto personificado.
Examples
A. Usar SESSION_USER para devolver o nome de utilizador da sessão atual
O exemplo seguinte declara uma variável como nchar, atribui o valor atual de SESSION_USER a essa variável e depois imprime a variável com uma descrição em texto.
DECLARE @session_usr NCHAR(30);
SET @session_usr = SESSION_USER;
SELECT 'This session''s current user is: '+ @session_usr;
GO
Este é o conjunto de resultados quando o utilizador da sessão é Surya:
--------------------------------------------------------------
This session's current user is: Surya
(1 row(s) affected)
B. Usar SESSION_USER com restrições PADRÃO
O exemplo seguinte cria uma tabela que usa SESSION_USER como DEFAULT restrição o nome da pessoa que regista a receção de um envio.
USE AdventureWorks2022;
GO
CREATE TABLE deliveries3
(
order_id INT IDENTITY(5000, 1) NOT NULL,
cust_id INT NOT NULL,
order_date SMALLDATETIME NOT NULL DEFAULT GETDATE(),
delivery_date SMALLDATETIME NOT NULL DEFAULT
DATEADD(dd, 10, GETDATE()),
received_shipment NCHAR(30) NOT NULL DEFAULT SESSION_USER
);
GO
Os registos adicionados à tabela serão carimbados com o nome de utilizador do utilizador atual. Neste exemplo, Wanida, Sylvester, e Alejandro verifique a receção de envios. Isto pode ser emulado trocando o contexto do utilizador usando EXECUTE AS.
EXECUTE AS USER = 'Wanida'
INSERT deliveries3 (cust_id)
VALUES (7510);
INSERT deliveries3 (cust_id)
VALUES (7231);
REVERT;
EXECUTE AS USER = 'Sylvester'
INSERT deliveries3 (cust_id)
VALUES (7028);
REVERT;
EXECUTE AS USER = 'Alejandro'
INSERT deliveries3 (cust_id)
VALUES (7392);
INSERT deliveries3 (cust_id)
VALUES (7452);
REVERT;
GO
A consulta seguinte seleciona toda a informação da deliveries3 tabela.
SELECT order_id AS 'Order #', cust_id AS 'Customer #',
delivery_date AS 'When Delivered', received_shipment
AS 'Received By'
FROM deliveries3
ORDER BY order_id;
GO
Aqui está o conjunto de resultados.
Order # Customer # When Delivered Received By
-------- ---------- ------------------- -----------
5000 7510 2005-03-16 12:02:14 Wanida
5001 7231 2005-03-16 12:02:14 Wanida
5002 7028 2005-03-16 12:02:14 Sylvester
5003 7392 2005-03-16 12:02:14 Alejandro
5004 7452 2005-03-16 12:02:14 Alejandro
(5 row(s) affected)
Exemplos: Azure Synapse Analytics and Analytics Platform System (PDW)
C: Usar SESSION_USER para devolver o nome de utilizador da sessão atual
O exemplo seguinte devolve o utilizador da sessão para a sessão atual.
SELECT SESSION_USER;
Ver também
ALTERAR TABELA (Transact-SQL)
CRIAR TABELA (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
SYSTEM_USER (Transact-SQL)
Funções do sistema (Transact-SQL)
UTILIZADOR (Transact-SQL)
USER_NAME (Transact-SQL)