Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric
Geeft de naam terug van de login die verbonden was met de instantie van SQL Server. Je kunt deze functie gebruiken om de identiteit van de oorspronkelijke login terug te geven in sessies waarin veel expliciete of impliciete contextwisselingen plaatsvinden.
Transact-SQL syntaxis-conventies
Syntaxis
ORIGINAL_LOGIN( )
Retourtypen
sysname
Opmerkingen
Deze functie kan nuttig zijn bij het auditen van de identiteit van de oorspronkelijke verbindende context. Terwijl functies zoals SESSION_USER en CURRENT_USER de huidige uitvoerende context teruggeven, geeft ORIGINAL_LOGIN de identiteit terug van de login die als eerste verbonden was met de instantie van SQL Server in die sessie.
Voorbeelden
Het volgende voorbeeld wisselt de uitvoeringscontext van de huidige sessie van de aanroeper van de statements naar login1. De functies SUSER_SNAME en ORIGINAL_LOGIN worden gebruikt om de huidige sessiegebruiker (de gebruiker naar wie de context is overgeschakeld) en het oorspronkelijke inlogaccount terug te geven.
Opmerking
Hoewel de ORIGINAL_LOGIN-functie wordt ondersteund op Azure SQL Database, zal het volgende script falen omdat Execute as LOGIN niet wordt ondersteund op 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