
# ALTER USER
#### 功能描述
修改数据库用户的属性。
#### 注意事项
ALTER USER中修改的会话参数只针对指定的用户，且在下一次会话中有效。
#### 语法格式
- 修改用户的权限等信息。
  ```
  ALTER USER user_name [ [ WITH ] option [ ... ] ];
  ```
  其中option子句为。
  ```
  { CREATEDB | NOCREATEDB }
      | { CREATEROLE | NOCREATEROLE }
      | { INHERIT | NOINHERIT }
      | { AUDITADMIN | NOAUDITADMIN }
      | { SYSADMIN | NOSYSADMIN }
      | {MONADMIN | NOMONADMIN}
      | {OPRADMIN | NOOPRADMIN}
      | {POLADMIN | NOPOLADMIN}
      | { USEFT | NOUSEFT }
      | { LOGIN | NOLOGIN }
      | { REPLICATION | NOREPLICATION }
      | {VCADMIN | NOVCADMIN}
      | {PERSISTENCE | NOPERSISTENCE}
      | CONNECTION LIMIT connlimit
      | [ ENCRYPTED | UNENCRYPTED ] PASSWORD { 'password' [EXPIRED] | DISABLE | EXPIRED }
      | [ ENCRYPTED | UNENCRYPTED ] IDENTIFIED BY { 'password' [ REPLACE 'old_password' | EXPIRED ] | DISABLE }
      | VALID BEGIN 'timestamp'
      | VALID UNTIL 'timestamp'
      | RESOURCE POOL 'respool'
      | PERM SPACE 'spacelimit'
      | PGUSER
  ```
  
- 修改用户名。
  ```
  ALTER USER user_name 
      RENAME TO new_name;
  ```
  
- 锁定或解锁。
  ```
  ALTER USER user_name
      ACCOUNT { LOCK | UNLOCK };
  ```
  
- 修改与用户关联的指定会话参数值。
  ```
  ALTER USER user_name 
      SET configuration_parameter { { TO | = } { value | DEFAULT } | FROM CURRENT };
  ```
  
- 重置与用户关联的指定会话参数值。
  ```
  ALTER USER user_name 
      RESET { configuration_parameter | ALL };
  ```
  
 
#### 参数说明
- **user_name**
  现有用户名。
  取值范围：已存在的用户名，如果用户名中包含大写字母则需要使用双引号括起来。
  
- **new_password**
  新密码。
  密码规则如下：
  - 不能与当前密码相同。
  
  - 密码默认不少于8个字符。
  
  - 不能与用户名及用户名倒序相同。
  
  - 至少包含大写字母（A-Z），小写字母（a-z），数字（0-9），非字母数字字符（限定为\~!@#$%\^\&\*()-_=+\\\|\[{}\];:,\<.\>/?）四类字符中的三类字符。
  
  - 应当使用单引号将用户密码括起来。
  
  
  取值范围：字符串。
  
- **old_password**
  旧密码。
  
- **ACCOUNT { LOCK \| UNLOCK }**
  - ACCOUNT LOCK：锁定账户，禁止登录数据库。
  
  - ACCOUNT UNLOCK：解锁账户，允许登录数据库。
   
- **PGUSER**
  当前版本不允许修改用户的PGUSER属性。
  
其他参数请参见[CREATE ROLE](https://support.huaweicloud.com/centralized-devg-v3-gaussdb/gaussdb-42-0549.html#ZH-CN_TOPIC_0000002200579074)和[ALTER ROLE](https://support.huaweicloud.com/centralized-devg-v3-gaussdb/gaussdb-42-0490.html#ZH-CN_TOPIC_0000002200578950)的参数说明。
#### 示例
```
--创建用户jim，登录密码为********。
gaussdb=# CREATE USER jim PASSWORD '********';
--修改用户jim的登录密码。
gaussdb=# ALTER USER jim IDENTIFIED BY '**********' REPLACE '********';
--将enable_seqscan的值设置为on， 设置成功后，在下一会话中生效。
gaussdb=# ALTER USER jim SET enable_seqscan TO on;
--重置jim的enable_seqscan参数。
gaussdb=# ALTER USER jim RESET enable_seqscan;
--锁定jim账户。
gaussdb=# ALTER USER jim ACCOUNT LOCK;
--解锁jim账户。
gaussdb=# ALTER USER jim ACCOUNT UNLOCK;
--修改用户名。
gaussdb=# ALTER USER jim RENAME TO lisa;
--删除用户。
gaussdb=# DROP USER lisa CASCADE;
```
#### 相关链接
[CREATE ROLE](https://support.huaweicloud.com/centralized-devg-v3-gaussdb/gaussdb-42-0549.html#ZH-CN_TOPIC_0000002200579074)，[CREATE USER](https://support.huaweicloud.com/centralized-devg-v3-gaussdb/gaussdb-42-0566.html#ZH-CN_TOPIC_0000002200419306)，[DROP USER](https://support.huaweicloud.com/centralized-devg-v3-gaussdb/gaussdb-42-0615.html#ZH-CN_TOPIC_0000002235459505)
