---
title: "ALTER USER - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: ALTER USER 描述 该语句主要用于执行以下操作： 修改 OceanBase 数据库用户的密码。 锁定或者解锁用户，且被锁定的用户不允许登录数据库。 说明 除了修改当前用户的口令之外，必须拥有 CREATE USER 的权限，才可以执行本命令。 设置用户在登录时默认激活的角色。 修改用户的资源选项。 权限要求 …
---
切换语言

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

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

# ALTER USER

更新时间：2026-06-16 16:34:25

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/700.reference/500.sql-reference/100.sql-syntax/200.common-tenant-of-mysql-mode/600.sql-statement-of-mysql-mode/1800.alter-user-of-mysql-mode.md)  

## 描述

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

- 修改 OceanBase 数据库用户的密码。
 - 锁定或者解锁用户，且被锁定的用户不允许登录数据库。

  #### 说明

  除了修改当前用户的口令之外，必须拥有 `CREATE USER` 的权限，才可以执行本命令。
 - 设置用户在登录时默认激活的角色。
 - 修改用户的资源选项。

## 权限要求

执行 `ALTER USER` 语句需要当前用户具备 `CREATE USER` 管理权限。有关 OceanBase 数据库权限的详细介绍，请参见 [MySQL 模式下的权限分类](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685770)。

## 语法

- 修改用户密码：

  ```sql
  ALTER USER 'user_name'
  IDENTIFIED [WITH auth_plugin]  BY 'password' | IDENTIFIED [WITH auth_plugin] AS 'auth_string'

  ```
 - 锁定用户：

  ```sql
  ALTER USER 'user_name' [ACCOUNT LOCK | ACCOUNT UNLOCK]

  ```
 - 设置用户在登录时默认激活的角色：

  ```sql
  ALTER USER user_name DEFAULT ROLE {NONE | ALL | role_name [, role_name ...]}

  ```
 - 修改用户的资源选项：

  ```sql
  ALTER USER user_name WITH  resource_option [resource_option]

  resource_option:
      MAX_CONNECTIONS_PER_HOUR integer
      | MAX_USER_CONNECTIONS integer

  ```

## 参数解释

| **参数** | **描述** |
| --- | --- |
| user_name | 指定用户名称。 |
| password | 指定新密码。 |
| IDENTIFIED WITH auth_plugin AS 'auth_string' | 将账户身份验证插件设置为 `auth_plugin`，并将 `auth_string` 值存储在 `mysql.user`表中。如果插件需要哈希字符串，则假定该字符串已经是插件所需的哈希格式。 |
| ACCOUNT LOCK | 指定锁定用户。 |
| ACCOUNT UNLOCK | 指定解锁用户。 |
| NONE | 指定停用用户被授予的所有角色。 |
| ALL | 指定激活用户下所有的角色。 |
| role_name | 指定角色的名称，激活多个角色时，角色名用英文逗号（`,`）隔开。 |
| resource_option | 指定用户的资源选项，指定多个资源选项时，使用英文空格隔开。   - `MAX_CONNECTIONS_PER_HOUR`：用于指定每小时允许的最大连接数，`integer` 是一个整数，表示允许的最大连接数。 - `MAX_USER_CONNECTIONS`：用于指定每个用户允许的最大连接数，`integer` 是一个整数，表示允许的最大连接数。 |

## 示例

- 执行以下命令将用户 `sqluser01` 的密码修改为 `******`。

  ```sql
  obclient> CREATE USER 'sqluser01' IDENTIFIED BY '******';
  obclient> ALTER USER 'sqluser01' IDENTIFIED BY '******';

  ```
 - 执行以下命令指定身份验证插件。

  ```sql
  obclient> ALTER USER 'sqluser01'
  IDENTIFIED WITH mysql_native_password
             AS '*6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4';

  ```
 - 锁定用户 `obsqluser01`。

  ```sql
  obclient> CREATE USER 'obsqluser01'
  IDENTIFIED BY '******';
  obclient> ALTER USER 'obsqluser01' ACCOUNT LOCK;

  ```
 - 解锁用户 `obsqluser01`。

  ```sql
  obclient> ALTER USER 'obsqluser01' ACCOUNT UNLOCK;

  ```
 - 指定用户 `user001` 在登录时，默认激活用户被授予的 `role001` 和 `role002` 角色。

  ```sql
  obclient> CREATE USER user001 IDENTIFIED BY '******';
  -- 确保角色 `role001` 和 `role002` 已经存在。
  obclient> ALTER USER user001 DEFAULT ROLE role001, role002;

  ```
 - 修改用户的资源选项。先创建用户 `user001`，然后修改其最大连接数。

  ```sql
  obclient> ALTER USER user001 WITH MAX_USER_CONNECTIONS 30;

  ```
 - 修改用户 `user001` 每小时的最大连接数。

  ```sql
  obclient> ALTER USER user001 WITH MAX_CONNECTIONS_PER_HOUR 50;

  ```
 - 同时修改用户 `user001` 的最大连接数和每小时的最大连接数。

  ```sql
  obclient> ALTER USER user001 WITH MAX_USER_CONNECTIONS 300 MAX_CONNECTIONS_PER_HOUR 500;

  ```

## 相关文档

- [激活角色](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005687000)
 - [查看角色](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005687001)
 - [CURRENT_ROLE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005687337)

 上一篇 下一篇 ![有帮助](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) 咨询热线
