Sdílet prostřednictvím


ORIGINAL_LOGIN (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Vrátí název přihlašovacího údaje, který byl připojen k instanci SQL Serveru. Tuto funkci můžete použít k vrácení identity původního přihlašovacího relace, ve kterých dochází k mnoha explicitním nebo implicitním změnám kontextu.

Transact-SQL konvence syntaxe

Syntaxe

ORIGINAL_LOGIN( )  

Návratové typy

sysname

Poznámky

Tato funkce může být užitečná při auditu identity původního spojovacího kontextu. Zatímco funkce jako SESSION_USER a CURRENT_USER vracejí aktuální spouštěcí kontext, ORIGINAL_LOGIN vrací identitu přihlašovacího údaje, který se poprvé připojil k instanci SQL Serveru v dané relaci.

Examples

Následující příklad přepíná kontext provádění aktuální relace z volajícího příkazů na login1. Funkce SUSER_SNAME a ORIGINAL_LOGIN slouží k vrácení aktuálního uživatele relace (uživatele, na kterého byl kontext převeden) a původního přihlašovacího účtu.

Poznámka:

Ačkoli je funkce ORIGINAL_LOGIN podporována v Azure SQL Database, následující skript selže, protože Execute as LOGIN není v Azure SQL Database podporován.

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  

Viz také

VYKONAT AS (Transact-SQL)
ZPĚT (Transact-SQL)