跳到主要内容
版本:Latest-3.3

EXECUTE AS

功能

在得到以指定用户身份执行操作的权限 (IMPERSONATE) 后,您可以使用 EXECUTE AS 语句将当前会话的执行上下文切换到该指定用户。该功能从 2.4 版本开始支持。

语法

EXECUTE AS user WITH NO REVERT

参数说明

user:该指定用户必须为已存在的用户。

注意事项

  • 当前登录用户(即调用 EXECUTE AS 语句的用户)必须有 IMPERSONATE 到指定用户的权限。
  • EXECUTE AS 语句必须包括 WITH NO REVERT 子句,表示在当前会话结束前,当前会话的执行上下文不能切换为原登录用户。

示例

将会话的执行上下文切换到用户 test2

EXECUTE AS test2 WITH NO REVERT;

语句执行成功后,可以通过 select current_user() 命令获取当前用户。

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