ORIGINAL_LOGIN (Transact-SQL)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure

Restituisce il nome dell'account di accesso utilizzato per la connessione all'istanza di SQL Server. È possibile utilizzare questa funzione per restituire l'identità dell'account di accesso originale in sessioni in cui si verificano numerosi cambi di contesto espliciti o impliciti.

Convenzioni di sintassi Transact-SQL

Sintassi

ORIGINAL_LOGIN( )  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

Tipi restituiti

sysname

Osservazioni:

Questa funzione può essere utile per il controllo dell'identità del contesto di connessione originale. A differenza di funzioni quali SESSION_USER e CURRENT_USER che restituiscono il contesto di esecuzione corrente, ORIGINAL_LOGIN restituisce l'identità dell'account di accesso usato per la prima connessione all'istanza di SQL Server in tale sessione.

Esempi

Nell'esempio seguente il contesto di esecuzione della sessione corrente viene cambiato dal chiamante delle istruzioni in login1. Le funzioni SUSER_SNAME e ORIGINAL_LOGIN vengono utilizzate per restituire rispettivamente l'utente della sessione corrente, ovvero l'utente su cui è stato impostato il contesto, e l'account di accesso originale.

Nota

Anche se la funzione ORIGINAL_LOGIN è supportata nel database SQL di Azure, lo script seguente avrà esito negativo, poiché l'istruzione EXECUTE AS LOGIN non è supportata nel database SQL di 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  

Vedi anche

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