Перейти к основному содержимому

EXECUTE AS

Используйте привилегию IMPERSONATE с операторами EXECUTE AS для переключения контекста выполнения текущей сессии на олицетворяемого пользователя.

Эта команда поддерживается начиная с версии 1.5.0.

Синтаксис

EXECUTE AS user WITH NO REVERT

Параметры

user: Пользователь должен уже существовать.

Примечания по использованию

  • Текущий пользователь входа (который вызывает оператор EXECUTE AS) должен иметь привилегию для олицетворения другого пользователя. Для получения дополнительной информации см. GRANT.
  • Оператор EXECUTE AS должен содержать предложение WITH NO REVERT, что означает, что контекст выполнения текущей сессии не может быть переключен обратно к исходному пользователю входа до завершения текущей сессии.

Примеры

Переключить контекст выполнения текущей сессии на пользователя test2.

EXECUTE AS test2 WITH NO REVERT;

После успешного переключения вы можете выполнить команду select current_user() для получения текущего пользователя.

select current_user();
+-----------------------------+
| CURRENT_USER() |
+-----------------------------+
| 'default_cluster:test2'@'%' |
+-----------------------------+