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
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 DEFAULT restrições nas CREATE TABLE instruções ou, ALTER TABLE ou utilize-o 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 DEFAULT restrições
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
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;