
# SET SESSION AUTHORIZATION
#### 功能描述
把当前会话里的会话用户标识和当前用户标识都设置为指定的用户。
#### 注意事项
只有在初始会话用户有系统管理员权限的时候，会话用户标识符才能改变。否则，只有在指定了被认证的用户名的情况下，系统才接受该命令。
#### 语法格式
- 为当前会话设置会话用户标识符和当前用户标识符。
  ```
  SET [ SESSION | LOCAL ] SESSION AUTHORIZATION role_name PASSWORD 'password';
  ```
  ![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/figure/zh-cn_image_0000002526897114.png "点击放大")
  
- 重置会话和当前用户标识符为初始认证的用户名。
  ```
  {SET [ SESSION | LOCAL ] SESSION AUTHORIZATION DEFAULT
      | RESET SESSION AUTHORIZATION};
  ```
  ![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/figure/zh-cn_image_0000002558056961.png "点击放大")
  
 
#### 参数说明
- **SESSION**
  声明这个命令只对当前会话起作用。
  
- **LOCAL**
  声明该命令只在当前事务中有效。
  
- **role_name**
  用户名。
  取值范围：字符串，数据库中已经存在的用户名。
  
- **password**
  角色的密码。要求符合密码的命名规则。
  ![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  使用密文密码限制如下：
  - 管理员用户不能使用密文密码切换到其他管理员用户，只能向权限更低用户切换；
  
  
  使用密文密码通常用于gs_dump、gs_dumpall导出场景，其他场景不建议直接使用密文密码。
  
- **DEFAULT**
  重置会话和当前用户标识符为初始认证的用户名。
  
 
#### 示例
```
--查询会话用户，当前用户。
gaussdb=# SELECT SESSION_USER, CURRENT_USER;
 session_user | current_user 
--------------+--------------
 omm          | omm
(1 row)
--创建角色paul。
gaussdb=# CREATE ROLE paul PASSWORD '********';
--设置当前用户和会话用户为paul，并查询会话用户，当前用户。
gaussdb=# SET SESSION AUTHORIZATION paul PASSWORD '********';
gaussdb=> SELECT SESSION_USER, CURRENT_USER;
 session_user | current_user 
--------------+--------------
 paul         | paul
(1 row)
--重置会话用户，当前用户。
gaussdb=> RESET SESSION AUTHORIZATION;
gaussdb=# SELECT SESSION_USER, CURRENT_USER;
 session_user | current_user 
--------------+--------------
 omm          | omm
(1 row)
--删除用户。
gaussdb=# DROP USER paul;
```
#### 相关参考
[SET ROLE](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0686.html#ZH-CN_TOPIC_0000002527826276)
