ORIGINAL_LOGIN(Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

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

Transact-SQL 구문 표기 규칙

Syntax

ORIGINAL_LOGIN( )  

참고 항목

SQL Server 2014(12.x) 및 이전 버전에 대한 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조 하세요.

반환 형식

sysname

설명

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

예제

다음 예에서는 현재 세션의 실행 컨텍스트를 문의 호출자에서 login1로 전환합니다. SUSER_SNAMEORIGINAL_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  

관련 항목

EXECUTE AS(Transact-SQL)
REVERT(Transact-SQL)