ORIGINAL_LOGIN (T-SQL)
Berlaku untuk: SQL ServerAzure SQL Database Azure 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.
Sintaks
ORIGINAL_LOGIN( )
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