Delen via


ORIGINAL_LOGIN (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

Geeft de naam terug van de login die verbonden was met de instantie van SQL Server. Je kunt deze functie gebruiken om de identiteit van de oorspronkelijke login terug te geven in sessies waarin veel expliciete of impliciete contextwisselingen plaatsvinden.

Transact-SQL syntaxis-conventies

Syntaxis

ORIGINAL_LOGIN( )  

Retourtypen

sysname

Opmerkingen

Deze functie kan nuttig zijn bij het auditen van de identiteit van de oorspronkelijke verbindende context. Terwijl functies zoals SESSION_USER en CURRENT_USER de huidige uitvoerende context teruggeven, geeft ORIGINAL_LOGIN de identiteit terug van de login die als eerste verbonden was met de instantie van SQL Server in die sessie.

Voorbeelden

Het volgende voorbeeld wisselt de uitvoeringscontext van de huidige sessie van de aanroeper van de statements naar login1. De functies SUSER_SNAME en ORIGINAL_LOGIN worden gebruikt om de huidige sessiegebruiker (de gebruiker naar wie de context is overgeschakeld) en het oorspronkelijke inlogaccount terug te geven.

Opmerking

Hoewel de ORIGINAL_LOGIN-functie wordt ondersteund op Azure SQL Database, zal het volgende script falen omdat Execute as LOGIN niet wordt ondersteund op 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  

Zie ook

UITVOER ALS (Transact-SQL)
TERUGKEREN (Transact-SQL)