Megosztás a következőn keresztül:


ORIGINAL_LOGIN (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Visszaadja annak a bejelentkezésnek a nevét, amely csatlakozott az SQL Server példányához. Ezt a függvényt arra használhatod, hogy visszaadd az eredeti bejelentkezés személyazonosságát azokban az ülésekben, ahol sok explicit vagy implicit kontextusváltás van.

Transact-SQL szintaxis konvenciók

Szemantika

ORIGINAL_LOGIN( )  

Visszatérési típusok

sysname

Megjegyzések

Ez a függvény hasznos lehet az eredeti összekapcsoló kontextus identitásának auditálásában. Míg az olyan függvények, mint az SESSION_USER és az CURRENT_USER visszaadják a jelenlegi futtató kontextust, ORIGINAL_LOGIN adja vissza annak a bejelentkezésnek az identitását, amely először csatlakozott az SQL Server példányához abban az ülésben.

Példák

A következő példa átváltja a jelenlegi session végrehajtási kontextusát az utasítások hívójáról .login1 A és SUSER_SNAME funkciók ORIGINAL_LOGIN arra szolgálnak, hogy visszaadják a jelenlegi munkamenet felhasználót (akire a kontextust átváltották), valamint az eredeti bejelentkezési fiókot.

Megjegyzés:

Bár a ORIGINAL_LOGIN funkció támogatott az Azure SQL Database-en, a következő szkript meghibásodik, mert az Azure SQL Database-en nem támogatott a Execute as LOGIN .

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  

Lásd még:

VÉGREHAJTÁS (Transact-SQL)
VISSZAÁLLÍTÁS (Transact-SQL)