Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base 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