---
title: "ALTER USER - OceanBase 数据库 V4.1.0 | OceanBase 文档中心"
description: ALTER USER 描述 该语句主要用于执行以下操作： 修改数据库用户的密码。 修改数据库用户使用的 Profile。 修改数据库用户连接的加密方式，其它修改用户密码方式，请参见 SET PASSWORD 。 修改数据库用户拥有角色的默认角色。 说明 除了修改当前用户的命令外，必须拥有 ALTER USER 权限，…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.1.0

# ALTER USER

更新时间：2024-04-25 16:51:52

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.1.0/zh-CN/700.reference/400.development-reference/100.sql-syntax/300.common-tenant-of-oracle-mode/900.sql-statement-of-oracle-mode/100.ddl-of-oracle-mode/1200.alter-user-of-oracle-mode.md)  

## 描述

该语句主要用于执行以下操作：

- 修改数据库用户的密码。
 - 修改数据库用户使用的 Profile。
 - 修改数据库用户连接的加密方式，其它修改用户密码方式，请参见 [SET PASSWORD](https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001701434)。
 - 修改数据库用户拥有角色的默认角色。

  #### 说明

  除了修改当前用户的命令外，必须拥有 `ALTER USER` 权限，才可以执行本命令。

## 语法

```sql
ALTER USER user_name
    { IDENTIFIED BY password
    | PROFILE {"profile_name" | DEFAULT}
    | REQUIRE {NONE | SSL | x509 | tls_option_list};
    | DEFAULT ROLE
            { role_name[,role_name...]
            | ALL [EXCEPT role_name[,role_name...]]
            | NONE
            }
    };

tls_option_list:
    tls_option
    | tls_option_list tls_option

tls_option:
    CIPHER str_value
    | ISSUER str_value
    | SUBJECT str_value

```

## 参数解释

| 参数 | 描述 |
| --- | --- |
| user_name | 用户名。 |
| IDENTIFIED BY | 指定用户新密码。 |
| PROFILE | 指定用户使用的的 Profile。   - `profile_name`：Profile 文件名。 - `DEFAULT`：表示忽略此参数的限制。 |
| REQUIRE | 指定用户使用的加密协议为 `NONE`、`SSL`、`X509` 和 `tls_option_list` 中的一种。 |
| DEFAULT ROLE | 指定用户登录时的默认角色。   - `ALL`：把用户拥有的所有角色都设置为默认角色。 `EXCEPT` 子句表示列出的角色除外，为可选项。 - `NONE`：不指定默认角色，即禁用用户的所有角色。 **注意** 以下情况不能指定 `DEFAULT ROLE`：      - 未授予用户的角色。     - 通过其他角色授予的角色。 |

## 示例

- 修改用户 `user1` 的密码。

  ```sql
  obclient> ALTER USER user1 IDENTIFIED BY ******;
  Query OK, 0 rows affected

  ```
 - 修改用户 `user1` 连接加密协议为 `SSL`。

  ```sql
  obclient> ALTER USER user1 REQUIRE SSL;
  Query OK, 0 rows affected

  ```
 - 修改用户 `user1` 使用的的 Profile 为 `profile1`。

  ```sql
  obclient> ALTER USER user1 PROFILE "profile1";
  Query OK, 0 rows affected

  ```
 - 设置用户 `user1` 的默认角色。

  ```sql
  obclient> CREATE ROLE role1;
  Query OK, 0 rows affected

  obclient> CREATE ROLE role2 IDENTIFIED BY ******;
  Query OK, 0 rows affected

  obclient> CREATE ROLE role3 IDENTIFIED BY ******;
  Query OK, 0 rows affected

  obclient> GRANT role1,role2,role3 TO user1;
  Query OK, 0 rows affected

  obclient> ALTER USER user1 DEFAULT ROLE role1;
  Query OK, 0 rows affected

  ```

  #### 说明

  用户 `user1` 可以直接使用 `role1` 的权限。`role2` 和 `role3` 的权限需要用户 `user1` 在会话中启用 `role2` 和 `role3` 后，用户 `user1` 才能使用其权限 。

  有关启用角色命令的详细信息，请参见 [SET ROLE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001701435)。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
