Partilhar via


ORIGINAL_LOGIN (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Devolve o nome do login que se ligou à instância do SQL Server. Pode usar esta função para devolver a identidade do login original em sessões em que existem muitas trocas de contexto explícitas ou implícitas.

Transact-SQL convenções de sintaxe

Sintaxe

ORIGINAL_LOGIN( )  

Tipos de devolução

sysname

Observações

Esta função pode ser útil para auditar a identidade do contexto de ligação original. Enquanto funções como SESSION_USER e CURRENT_USER retornam o contexto de execução atual, ORIGINAL_LOGIN devolve a identidade do login que se ligou primeiro à instância do SQL Server nessa sessão.

Examples

O exemplo seguinte troca o contexto de execução da sessão atual do chamador das instruções para login1. As funções SUSER_SNAME e ORIGINAL_LOGIN são usadas para devolver o utilizador da sessão atual (o utilizador para quem o contexto foi transferido) e a conta de login original.

Observação

Embora a função ORIGINAL_LOGIN seja suportada no Azure SQL Database, o script seguinte falhará porque o Executar como LOGIN não é suportado no Azure SQL Database.

USE AdventureWorks2022;  
GO  
--Create a temporary login and user.  
CREATE LOGIN login1 WITH PASSWORD = 'J345#$)thb';  
CREATE USER user1 FOR LOGIN login1;  
GO  
--Execute a context switch to the temporary login account.  
DECLARE @original_login sysname;  
DECLARE @current_context sysname;  
EXECUTE AS LOGIN = 'login1';  
SET @original_login = ORIGINAL_LOGIN();  
SET @current_context = SUSER_SNAME();  
SELECT 'The current executing context is: '+ @current_context;  
SELECT 'The original login in this session was: '+ @original_login  
GO  
-- Return to the original execution context  
-- and remove the temporary principal.  
REVERT;  
GO  
DROP LOGIN login1;  
DROP USER user1;  
GO  

Ver também

EXECUTAR COMO (Transact-SQL)
REVERTER (Transact-SQL)