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

Область применения: ДаSQL Server ДаБаза данных SQL Azure НетAzure Synapse Analytics (Хранилище данных SQL) НетParallel Data Warehouse APPLIES TO: YesSQL Server YesAzure SQL Database NoAzure Synapse Analytics (SQL DW) NoParallel Data Warehouse

Возвращает имя входа, которое используется для подключения к экземпляру SQL ServerSQL Server.Returns the name of the login that connected to the instance of SQL ServerSQL Server. Можно использовать эту функцию для возврата идентификатора исходного имени входа в сеансах, содержащих множество явных и неявных переключений контекста.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.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQLTopic link icon Transact-SQL Syntax Conventions

СинтаксисSyntax

  
ORIGINAL_LOGIN( )  

Типы возвращаемых данныхReturn Types

sysnamesysname

RemarksRemarks

Эта функция может быть полезной для аудита идентификатора исходного контекста подключения.This function can be useful in auditing the identity of the original connecting context. Так как остальные функции, такие как SESSION_USER и CURRENT_USER, возвращают текущий исполняющий контекст, ORIGINAL_LOGIN возвращает идентификатор имени входа, которое первым подключилось к экземпляру SQL ServerSQL Server в данном сеансе.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.

ПримерыExamples

Следующий пример переключает исполняющий контекст текущего сеанса от того, кто вызвал данные инструкции, на login1.The following example switches the execution context of the current session from the caller of the statements to login1. Функции SUSER_SNAME и ORIGINAL_LOGIN используются для возврата пользователя текущего сеанса (пользователя, на которого переключается контекст) и исходной учетной записи имени входа.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.

Примечание

Несмотря на то, что функция ORIGINAL_LOGIN поддерживается в базе данных SQL Azure, приведенный ниже сценарий завершится ошибкой, поскольку Execute as LOGIN не поддерживается в базе данных SQL Azure.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  

См. также:See Also

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