ORIGINAL_LOGIN (Transact-SQL)ORIGINAL_LOGIN (Transact-SQL)

SE APLICA A: síSQL Server (a partir de 2008) síAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Devuelve el nombre del inicio de sesión que se conectó a la instancia de SQL ServerSQL Server.Returns the name of the login that connected to the instance of SQL ServerSQL Server. Puede utilizar esta función para devolver la identidad del inicio de sesión original en sesiones en las que hay varios cambios de contexto explícitos o implícitos.You can use this function to return the identity of the original login in sessions in which there are many explicit or implicit context switches.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

  
ORIGINAL_LOGIN( )  

Tipos devueltosReturn Types

sysnamesysname

NotasRemarks

Esta función puede resultar útil para la auditoría de la identidad del contexto de conexión original.This function can be useful in auditing the identity of the original connecting context. Mientras que funciones como SESSION_USER y CURRENT_USER devuelven el contexto de ejecución actual, ORIGINAL_LOGIN devuelve la identidad del inicio de sesión que se conectó en primer lugar a la instancia de SQL ServerSQL Server en esa sesión.Whereas functions such as SESSION_USER and CURRENT_USER return the current executing context, ORIGINAL_LOGIN returns the identity of the login that first connected to the instance of SQL ServerSQL Server in that session.

EjemplosExamples

El ejemplo siguiente cambia el contexto de ejecución de la sesión actual desde el solicitante de las instrucciones para login1.The following example switches the execution context of the current session from the caller of the statements to login1. Las funciones SUSER_SNAME y ORIGINAL_LOGIN se utilizan para devolver el usuario de la sesión actual (el usuario al que se cambió el contexto), y la cuenta de inicio de sesión original.The functions SUSER_SNAME and ORIGINAL_LOGIN are used to return the current session user (the user to whom the context was switched), and the original login account.

Nota

Aunque en Azure SQL Database se admite la función ORIGINAL_LOGIN, el script siguiente producirá un error porque Execute as LOGIN no se admite en Azure SQL Database.Although the ORIGINAL_LOGIN function is supported on Azure SQL Database, the following script will fail because Execute as LOGIN is not supported on Azure SQL Database.

USE AdventureWorks2012;  
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  

Consulte tambiénSee Also

EXECUTE AS (Transact-SQL) EXECUTE AS (Transact-SQL)
REVERT (Transact-SQL)REVERT (Transact-SQL)