EXECUTE AS
使用 EXECUTE AS 命令设置会话的当前用户。
概要
设置当前用户的语法:
EXECUTE AS <target-user-name>
输入
EXECUTE AS 命令的输入如下:
| 输入 | 描述 |
|---|---|
| <目标用户名 | 现有用户的名称。 |
输出
EXECUTE AS 命令有以下输出:
| 输出 | 描述 |
|---|---|
| EXECUTE AS | 命令成功后系统返回的信息。 |
| ERROR: permission denied. | 您必须拥有目标用户的 EXECUTE AS 权限。 |
描述
该语句允许具有适当权限的用户将其会话的 CURRENT USER 设置为不同的用户。 成功完成该语句后,当前用户就是语法中指定的目标用户。 安全检查基于当前用户的安全配置文件。
current_user 函数返回目标用户。 session_user 函数返回原始会话用户。
EXECUTE AS 与 SET 语句一样,在事务范围之外运行。 允许在显式事务中运行 EXECUTE AS。 回滚事务不会影响 EXECUTE AS 设置。 例如,假设您以 "
jdoe的身份运行,并运行以下程序:BEGIN;
EXECUTE AS dd;
ROLLBACK;
SELECT current_user;
CURRENT_USER
--------------
DD
(1 row)- 需要权限
- 您必须拥有目标用户的 EXECUTE AS 权限。
- 常用任务
- 使用 EXECUTE AS 命令设置会话的当前用户。
用途
以下是使用示例:
EXECUTE AS BOB;