Aracılığıyla paylaş


ORIGINAL_LOGIN (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

SQL Server örneğine bağlanan giriş girişinin adını döndürür. Bu fonksiyonu, birçok açık veya örtük bağlam anahtarının bulunduğu oturumlarda orijinal giriş oturumlarının kimliğini döndürmek için kullanabilirsiniz.

Transact-SQL söz dizimi kuralları

Sözdizimi

ORIGINAL_LOGIN( )  

Dönüş Türleri

sysname

Açıklamalar

Bu fonksiyon, orijinal bağlayıcı bağlamın kimliğini denetlemede faydalı olabilir. SESSION_USER ve CURRENT_USER gibi fonksiyonlar mevcut yürütülme bağlamını döndürürken, ORIGINAL_LOGIN oturumda SQL Server örneğine ilk bağlanan girişin kimliğini döndürür.

Örnekler

Aşağıdaki örnek, mevcut oturumun uygulama bağlamını ifade arayandan 'ye login1değiştirir. ve SUSER_SNAME fonksiyonlarıORIGINAL_LOGIN, mevcut oturum kullanıcısını (bağlamın değiştirildiği kullanıcı) ve orijinal giriş hesabını geri döndürmek için kullanılır.

Uyarı

ORIGINAL_LOGIN fonksiyonu Azure SQL Veritabanı'nda desteklense de, aşağıdaki betik başarısız olacaktır çünkü Azure SQL Veritabanı'nda LOGIN olarak çalıştırma desteklenmemektedir.

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  

Ayrıca Bkz.

OLARAK YÜRÜT (Transact-SQL)
REVERT (Transact-SQL)