Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft 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