ORIGINAL_LOGIN(Transact-SQL)

SQL Server의 인스턴스에 연결된 로그인의 이름을 반환합니다. 이 함수를 사용하여 명시적 또는 암시적 컨텍스트 스위치가 많이 있는 세션의 원래 로그인 ID를 반환할 수 있습니다. 컨텍스트 전환 방법은 컨텍스트 전환 이해를 참조하십시오.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

ORIGINAL_LOGIN()

반환 형식

sysname

주의

이 함수는 원래 연결 컨텍스트의 ID를 감사하는 데 유용할 수 있습니다. SESSION_USERCURRENT_USER와 같은 함수가 현재 실행 중인 컨텍스트를 반환하는 반면에 ORIGINAL_LOGIN은 해당 세션에서 SQL Server의 해당 인스턴스에 최초로 연결한 로그인의 ID를 반환합니다.

다음 예에서는 현재 세션의 실행 컨텍스트를 문의 호출자에서 login1로 전환합니다. SUSER_SNAME 및 ORIGINAL_LOGIN 함수를 사용하여 현재 세션 사용자(컨텍스트가 전환되는 대상 사용자)와 원래 로그인 계정을 반환할 수 있습니다.

USE AdventureWorks;
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