| title | ORIGINAL_LOGIN (Transact-SQL) | Microsoft Docs | |||||
|---|---|---|---|---|---|---|
| ms.custom | ||||||
| ms.date | 03/14/2017 | |||||
| ms.prod | sql-non-specified | |||||
| ms.reviewer | ||||||
| ms.suite | ||||||
| ms.technology |
|
|||||
| ms.tgt_pltfrm | ||||||
| ms.topic | language-reference | |||||
| f1_keywords |
|
|||||
| dev_langs |
|
|||||
| helpviewer_keywords |
|
|||||
| ms.assetid | ddfb0991-cde3-4b97-a5b7-ee450133f160 | |||||
| caps.latest.revision | 18 | |||||
| author | BYHAM | |||||
| ms.author | rickbyh | |||||
| manager | jhubbard |
[!INCLUDEtsql-appliesto-ss2008-xxxx-xxxx-xxx_md]
Returns the name of the login that connected to the instance of [!INCLUDEssNoVersion]. You can use this function to return the identity of the original login in sessions in which there are many explicit or implicit context switches.
Transact-SQL Syntax Conventions
ORIGINAL_LOGIN( )
sysname
This function can be useful in auditing the identity of the original connecting context. Whereas functions such as SESSION_USER and CURRENT_USER return the current executing context, ORIGINAL_LOGIN returns the identity of the login that first connected to the instance of [!INCLUDEssNoVersion] in that session.
Returns NULL on [!INCLUDEssSDSfull].
The following example switches the execution context of the current session from the caller of the statements to login1. The functions SUSER_SNAME and ORIGINAL_LOGIN are used to return the current session user (the user to whom the context was switched), and the original login account.
USE AdventureWorks2012;
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