ORIGINAL_LOGIN(Transact-SQL)
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance
SQL Server 인스턴스에 연결된 로그인의 이름을 반환합니다. 이 함수를 사용하여 명시적 또는 암시적 컨텍스트 전환이 많이 있는 세션의 원래 로그인 ID를 반환할 수 있습니다.
구문
ORIGINAL_LOGIN( )
반환 형식
sysname
설명
이 함수는 원래 연결 컨텍스트의 ID를 감사하는 데 유용할 수 있습니다. SESSION_USER 및 CURRENT_USER와 같은 함수가 현재 실행 중인 컨텍스트를 반환하는 반면에 ORIGINAL_LOGIN은 해당 세션에서 SQL Server의 해당 인스턴스에 최초로 연결한 로그인의 ID를 반환합니다.
예제
다음 예에서는 현재 세션의 실행 컨텍스트를 문의 호출자에서 login1
로 전환합니다. SUSER_SNAME
및 ORIGINAL_LOGIN
함수를 사용하여 현재 세션 사용자(컨텍스트가 전환되는 대상 사용자)와 원래 로그인 계정을 반환할 수 있습니다.
참고
ORIGINAL_LOGIN 함수는 Azure SQL Database에서 지원되지만, 로그인으로 실행은 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