ORIGINAL_LOGIN (Transact-SQL)

傳回連接到 SQL Server 執行個體的登入名稱。您可以利用這個函數來傳回有許多明確或隱含內容切換的工作階段中原始登入的識別。如需有關內容切換的詳細資訊,請參閱<瞭解內容切換>。

主題連結圖示Transact-SQL 語法慣例

語法

ORIGINAL_LOGIN()

傳回類型

sysname

備註

這個函數在稽核原始連接內容的識別時很有用。SESSION_USERCURRENT_USER 這類函數會傳回目前的執行內容,ORIGINAL_LOGIN 會傳回在這個工作階段中,最先連接到 SQL Server 執行個體的登入識別。

範例

下列範例會將目前工作階段的執行內容從陳述式的呼叫者切換到 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