EXECUTE AS
Используйте привилегию IMPERSONATE с командами EXECUTE AS для переключения контекста выполнения текущей сессии на пользователя, которого вы имитируете.
Эта команда поддерживается начиная с версии v1.5.2.
Синтаксис
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'@'%' |
+-----------------------------+