Condividi tramite


ORIGINAL_LOGIN (Transact-SQL)

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. Per ulteriori informazioni sui cambi di contesto, vedere Informazioni sul cambio di contesto.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

ORIGINAL_LOGIN( )

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 utilizzato 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.

USE AdventureWorks2008R2;
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