Оператор EXECUTE AS
Позволяет выполнять запросы от имени другого пользователя.
Синтаксис
Первая форма (без subquery) означает, что все последующие запросы в текущей сессии будут выполняться от имени указанного target_user.
Вторая форма (с subquery) выполняет только указанный subquery от имени указанного target_user.
Для работы обеих форм необходимо, чтобы параметр сервера allow_impersonate_user
был установлен в значение 1, а привилегия IMPERSONATE была выдана. Например, следующие команды
позволяет пользователю user2 выполнять команды EXECUTE AS user1 ..., а также позволяет пользователю user3 выполнять команды от имени любого пользователя.
При работе от имени другого пользователя функция currentUser() возвращает имя этого пользователя, а функция authenticatedUser() возвращает имя пользователя, который был фактически аутентифицирован.