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