Partager via


ORIGINAL_LOGIN (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance

Renvoie le nom de la connexion qui s'est connectée à l'instance de SQL Server. Vous pouvez utiliser cette fonction pour renvoyer l'identité de la connexion d'origine dans les sessions où il y a un grand nombre de changements de contexte implicites ou explicites.

Conventions de la syntaxe Transact-SQL

Syntaxe

ORIGINAL_LOGIN( )  

Types de retour

sysname

Notes

Cette fonction peut s'avérer utile pour auditer l'identité du contexte de connexion d'origine. Alors que les fonctions telles que SESSION_USER et CURRENT_USER renvoient le contexte d’exécution actuel, ORIGINAL_LOGIN renvoie l’identité de la première connexion à l’instance de SQL Server dans la session.

Exemples

L'exemple suivant change le contexte d'exécution de la session actuelle de l'appelant des instructions vers login1. Les fonctions SUSER_SNAME et ORIGINAL_LOGIN sont utilisées pour renvoyer l'utilisateur de la session actuelle (l'utilisateur vers lequel le contexte a été basculé) et le compte de connexion d'origine.

Notes

Bien que la fonction ORIGINAL_LOGIN soit prise en charge sur Azure SQL Database, le script suivant échoue, car Execute as LOGIN n’est pas pris en charge sur 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  

Voir aussi

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