Bagikan melalui


ORIGINAL_LOGIN (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Mengembalikan nama login yang tersambung ke instans SQL Server. Anda dapat menggunakan fungsi ini untuk mengembalikan identitas login asli dalam sesi di mana ada banyak sakelar konteks eksplisit atau implisit.

Konvensi sintaks transact-SQL

Sintaksis

ORIGINAL_LOGIN( )  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Jenis Kembalian

nama sysname

Keterangan

Fungsi ini dapat berguna dalam mengaudit identitas konteks penyabungan asli. Sedangkan fungsi seperti SESSION_USER dan CURRENT_USER mengembalikan konteks eksekusi saat ini, ORIGINAL_LOGIN mengembalikan identitas login yang pertama kali terhubung ke instans SQL Server dalam sesi tersebut.

Contoh

Contoh berikut mengalihkan konteks eksekusi sesi saat ini dari pemanggil pernyataan ke login1. Fungsi SUSER_SNAME dan ORIGINAL_LOGIN digunakan untuk mengembalikan pengguna sesi saat ini (pengguna yang konteksnya dialihkan), dan akun masuk asli.

Catatan

Meskipun fungsi ORIGINAL_LOGIN didukung di Azure SQL Database, skrip berikut akan gagal karena Jalankan sebagai LOGIN tidak didukung di Azure SQL Database.

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  

Lihat Juga

EXECUTE AS (T-SQL)
KEMBALIkan (T-SQL)