ORIGINAL_LOGIN (Transact-SQL)

Gibt den Anmeldenamen zurück, der eine Verbindung mit der Instanz von SQL Server hergestellt hat. Mit dieser Funktion können Sie die Identität des ursprünglichen Anmeldenamens in Sitzungen mit vielen expliziten oder impliziten Kontextwechseln zurückgeben. Weitere Informationen zum Kontextwechsel finden Sie unter Grundlegendes zum Wechseln des Kontexts.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

ORIGINAL_LOGIN()

Rückgabetypen

sysname

Hinweise

Diese Funktion kann sich bei der Überwachung der Identität des ursprünglichen Verbindungskontextes als nützlich erweisen. Während Funktionen wie SESSION_USER und CURRENT_USER den aktuellen Ausführungskontext zurückgeben, gibt ORIGINAL_LOGIN die Identität des Anmeldenamens zurück, mit dem die erste Verbindung mit der Instanz von SQL Server in der Sitzung hergestellt wurde.

Beispiele

Im folgenden Beispiel wechselt der Ausführungskontext der aktuellen Sitzung vom Aufrufer der Anweisungen zu login1. Die Funktionen SUSER_SNAME und ORIGINAL_LOGIN werden verwendet, um den aktuellen Sitzungsbenutzer (der Benutzer, zu dem der Kontext gewechselt hat) und das ursprüngliche Anmeldekonto zurückzugeben.

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