Поделиться через


ORIGINAL_LOGIN (Transact-SQL)

Возвращает имя входа, которое используется для подключения к экземпляру SQL Server. Можно использовать эту функцию для возврата идентификатора исходного имени входа в сеансах, содержащих множество явных и неявных переключений контекста. Дополнительные сведения о переключений контекста см. в разделе Основные сведения о переключении контекста.

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

Синтаксис

ORIGINAL_LOGIN( )

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

sysname

Замечания

Эта функция может быть полезной для аудита идентификатора исходного контекста подключения. Так как остальные функции, такие как SESSION_USER и CURRENT_USER, возвращают текущий исполняющий контекст, ORIGINAL_LOGIN возвращает идентификатор имени входа, первым подключившегося к экземпляру SQL Server в данном сеансе.

Примеры

Следующий пример переключает исполняющий контекст текущего сеанса от того, кто вызвал данные инструкции, на login1. Функции SUSER_SNAME и ORIGINAL_LOGIN используются для возврата пользователя текущего сеанса (пользователя, на которого переключается контекст) и исходной учетной записи имени входа.

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