Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL 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.
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