Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Возвращает имя входа, которое используется для подключения к экземпляру SQL Server. Можно использовать эту функцию для возврата идентификатора исходного имени входа в сеансах, содержащих множество явных и неявных переключений контекста.
Соглашения о синтаксисе Transact-SQL
Синтаксис
ORIGINAL_LOGIN( )
Типы возвращаемых данных
sysname
Замечания
Эта функция может быть полезной для аудита идентификатора исходного контекста подключения. Так как остальные функции, например SESSION_USER и CURRENT_USER, возвращают текущий исполняющий контекст, ORIGINAL_LOGIN возвращает идентификатор имени входа, которое первым подключилось к экземпляру SQL Server в этом сеансе.
Примеры
Следующий пример переключает исполняющий контекст текущего сеанса от того, кто вызвал данные инструкции, на login1. Функции SUSER_SNAME и ORIGINAL_LOGIN используются для возврата пользователя текущего сеанса (пользователя, на которого переключается контекст) и исходной учетной записи имени входа.
Примечание.
Несмотря на то, что функция ORIGINAL_LOGIN поддерживается в базе данных SQL Azure, приведенный ниже сценарий завершится ошибкой, поскольку Execute as LOGIN не поддерживается в базе данных SQL Azure.
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