EXECUTE AS 语句
允许以其他用户身份执行查询。
语法
第一种形式(不带 subquery)会将当前会话中后续的所有查询,都以指定的 target_user 身份执行。
第二种形式(带有 subquery)只会以指定的 target_user 身份执行给定的 subquery。
为了使这两种形式生效,服务器配置项 allow_impersonate_user
必须设置为 1,并且需要授予 IMPERSONATE 权限。例如,下面的命令
允许用户 user2 执行命令 EXECUTE AS user1 ...,并且还允许用户 user3 以任意用户身份执行命令。
在模拟另一个用户时,函数 currentUser() 返回被模拟用户的名称, 而函数 authenticatedUser() 返回实际通过认证的用户名。