Partilhar via


ORIGINAL_LOGIN (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

Retorna o nome do logon que se conectou à instância do SQL Server. Você pode usar essa função para retornar a identidade do logon original em sessões nas quais há muitas alternâncias de contexto explícitas ou implícitas.

Convenções de sintaxe de Transact-SQL

Sintaxe

ORIGINAL_LOGIN( )  

Tipos de retorno

sysname

Comentários

Essa função pode ser útil ao examinar a identidade do contexto de conexão original. Enquanto funções como SESSION_USER e CURRENT_USER retornam o contexto de execução atual, ORIGINAL_LOGIN retorna a identidade do logon que se conectou primeiro à instância do SQL Server na sessão.

Exemplos

O exemplo a seguir alterna 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 retornar o usuário da sessão atual (o usuário para quem o contexto foi alternado) e a conta de logon original.

Observação

Embora haja suporte para a função ORIGINAL_LOGIN no Banco de Dados SQL do Azure, o script a seguir falhará porque não há suporte para Executar como LOGON no Banco de Dados SQL do Azure.

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  

Consulte Também

EXECUTE AS (Transact-SQL)
REVERT (Transact-SQL)