Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-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