---
title: "修改用户权限 | OceanBase 文档中心"
description: 修改用户权限 修改用户权限包括授予用户权限和撤销用户权限。 通过 SQL 语句授予权限 您可以通过 GRANT 语句授予用户用户级权限、数据库级权限或对象权限。 前提条件 当前用户必须拥有被授予的权限（例如， user1 把表 t1 的 SELECT 权限授予 user2 ，则 user1 必须拥有表 t1 的 SE…
---
切换语言

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

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

# 修改用户权限

更新时间：2026-06-20 16:04:48

修改用户权限包括授予用户权限和撤销用户权限。

## 通过 SQL 语句授予权限

您可以通过 `GRANT` 语句授予用户用户级权限、数据库级权限或对象权限。

### 前提条件

当前用户必须拥有被授予的权限（例如，`user1` 把表 `t1` 的 `SELECT` 权限授予 `user2`，则 `user1` 必须拥有表 `t1` 的 `SELECT` 的权限），并且拥有 `GRANT OPTION`权限，才能授予成功。

查看当前拥有权限的操作请参见 [查看用户权限](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000945717)。

### 注意事项

进行授权前，需要注意以下事项：

- 给特定用户授予权限时，如果用户不存在，可以直接创建用户。如果 `sql_mode='no_auto_create_user'`，且语句中没有 `IDENTIFIED BY` 指定密码时，不可以直接创建用户。
 - 同时把多个权限赋予用户时，权限类型用英文逗号（,）分隔。
 - 同时给多个用户授权时，用户名用英文逗号（,）分隔。
 - 用户被授权后，该用户只有重新连接 OceanBase 数据库，权限才能生效。
 - 由于目前没有 `CHANGE EFFECTIVE TENANT` 的权限控制，故 `sys` 租户下的用户都可以进行授权。

### 授予权限的语法

授予权限的语法如下：

```sql
GRANT priv_type
    ON priv_level
    TO user_specification [, user_specification]...
     [WITH GRANT OPTION];

privilege_type:
      ALTER
    | CREATE
    | CREATE USER
    | CREATE VIEW
    | DELETE
    | DROP
    | GRANT OPTION
    | INDEX
    | INSERT
    | PROCESS
    | SELECT
    | SHOW DATABASES
    | SHOW VIEW
    | SUPER
    | UPDATE
    | USAGE
    | CREATE SYNONYM

priv_level:
      *
    | *.*
    | database_name.*
    | database_name.table_name
    | table_name
    | database_name.rountine_name

user_specification:
user_name [IDENTIFIED BY [PASSWORD] 'password']

```

语句使用说明：

- `priv_type`：指定授予的权限类型。同时将多个权限授予用户时，权限类型之间使用英文逗号（,）分隔。
 - `priv_level`：指定授予权限的层级。MySQL 模式中，权限主要分为以下层级：

     - 用户层级：适用于所有的数据库。使用 `GRANT ... ON *.*` 授予用户级权限。
     - 数据库层级：适用于指定一个数据库中的所有目标。使用 `GRANT ... ON db_name.*` 授予数据库级权限。
     - 表层级：适用于指定一个表中的所有列。使用 `GRANT ... ON database_name.table_name` 授予表级权限。

  OceanBase 数据库 MySQL 模式支持的用户权限及其详细说明请参见 [用户及权限概述](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000945710)。
 - `user_specification`：指定待授予权限的用户。如果用户不存在，则直接创建用户。

  同时授权给多个用户时，用户名之间使用英文逗号（,）分隔。
 - `user_name IDENTIFIED BY 'password'`与 `user_name IDENTIFIED BY PASSWORD 'password'`：`user_name IDENTIFIED BY 'password'` 子句中的密码为明文；`user_name IDENTIFIED BY PASSWORD 'password'` 子句中的密码为密文。
 - `WITH GRANT OPTION`：指定权限是否允许转授或撤销。

### 操作示例

- 授予用户级权限

  用户级权限即全局权限，该权限适用于所有数据库。通常使用 `GRANT ... ON *.*` 授予用户级权限。

     - 将所有数据库的所有对象的权限授予用户 `user`。

      ```sql
      obclient> GRANT ALL ON *.* TO user;

      ```
     - 将所有数据库中所有表的 `INSERT` 、`SELECT` 权限授予用户 `user`。

      ```sql
      obclient> GRANT SELECT, INSERT ON *.* TO user;

      ```
 - 授予数据库级权限

  数据库级权限是指某个指定的数据库中所有对象的操作权限。通常使用 `GRANT ... ON db_name.*` 授予数据库级权限。

     - 将数据库 `db1` 的所有对象的操作权限授予用户 `user`。

      ```sql
      obclient> GRANT ALL ON db1.* TO user;

      ```
     - 将数据库 `db1` 的所有表的 `INSERT` 、`SELECT` 权限授予用户 `user`。

      ```sql
      obclient> GRANT SELECT, INSERT ON db1.* TO user;

      ```
 - 授予表级权限

  对象权限是指某个指定的数据库中的指定表的操作权限。通常使用 `GRANT ... ON db_name.tb1_name` 授予对象权限。

     - 将数据库 `db1` 的表 `tb1_name` 的 `INSERT` 、`SELECT` 权限授予用户 `user`。

      ```sql
      obclient> GRANT SELECT, INSERT ON db1.tb1_name TO user;

      ```
     - 将数据库 `db1` 的表 `tb1_name` 的操作权限授予用户 `user`。

      ```sql
      obclient> GRANT ALL ON db1.tb1_name TO user;

      ```

更多 `GRANT` 语句的信息请参见 [GRANT](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000945548)。

## 通过 SQL 语句撤销权限

### 前提条件

- 当前用户必须拥有被撤销的权限（例如，`user1` 要撤销 `user2` 对表 `t1` 的 `SELECT` 权限，则 `user1` 必须拥有表 `t1` 的 `SELECT`权限），并且拥有 `GRANT OPTION` 权限。
 - 撤销 `ALL PRIVILEGES` 和 `GRANT OPTION` 权限时，当前用户必须拥有全局 `GRANT OPTION` 权限，或者对权限表的 `UPDATE` 及 `DELETE` 权限。

### 注意事项

- 同时对某个用户撤销多个权限时，权限类型用英文逗号（,）隔开。
 - 同时撤销多个用户的授权时，用户名用英文逗号（,）隔开。
 - 撤销操作不会级联。例如，用户 `user1` 给 `user2` 授予了某些权限，撤回 `user1` 的权限不会同时也撤回 `user2` 的相应权限。

### 撤销权限的语法

撤销权限的语法如下：

```sql
REVOKE priv_type
     ON priv_level
     FROM 'user_name';

priv_type:
      ALTER
    | CREATE
    | CREATE USER
    | CREATE VIEW
    | DELETE
    | DROP
    | GRANT OPTION
    | INDEX
    | INSERT
    | PROCESS
    | SELECT
    | SHOW DATABASES
    | SHOW VIEW
    | SUPER
    | UPDATE
    | USAGE

```

语句使用说明：

- `priv_type`：指定撤销的权限类型。同时撤销用户的多个权限时，权限类型之间使用英文逗号（,）分隔。
 - `priv_level`：指定撤销的权限层级。主要分为以下层级：

     - 用户层级：适用于所有的数据库。使用 `REVOKE ... ON *.*` 撤销用户级权限。
     - 数据库层级：适用于一个指定数据库中的所有目标。使用 `REVOKE ... ON db_name.*` 撤销数据库级权限。
     - 表层级：适用于一个指定表中的所有列。使用 `REVOKE ... ON database_name.table_name` 撤销表级权限。

  OceanBase 数据库 MySQL 模式支持的用户权限及其详细说明请参见 [用户及权限概述](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000945710)。
 - `user_name`：指定待撤销权限的用户，同时撤销多个用户的权限时，用户名之间使用英文逗号（,）分隔。

### 操作示例

- 撤销用户级权限

  撤销用户 `user` 操作所有数据库中所有表的 `INSERT` 、`SELECT` 权限。

  ```sql
  obclient> REVOKE SELECT, INSERT ON *.* FROM 'user';

  ```
 - 撤销数据库级权限

  撤销用户 `user` 操作数据库 `db1` 的所有表的 `INSERT` 、`SELECT` 权限。

  ```sql
  obclient> REVOKE SELECT, INSERT ON db1 FROM 'user';

  ```
 - 撤销表级权限

  撤销用户 `user` 操作数据库 `db1` 的表 `tb1_name` 的 `INSERT` 、`SELECT` 权限。

  ```sql
  obclient> REVOKE SELECT, INSERT ON db1.tb1_name FROM 'user';

  ```

更多 `REVOKE` 语句的信息请参见 [REVOKE](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000945560)。

## 通过 OCP 授予或撤销权限

OCP 从 V2.5.0 版本开始支持修改 MySQL 兼容模式的用户权限。

### 前提条件

修改用户权限前，需要确认以下信息：

- 请确认当前 OCP 用户具备 **TENANT_MANAGER** 角色的权限，如果没有该角色权限，请联系 OCP 管理员为您添加相应角色，具体操作方法请参见 OCP 对应版本的《用户指南》文档中的 **编辑用户** 。
 - 当前 OCP 用户的密码箱中具有该租户的 `root` 密码，OCP 用户的密码箱相关操作请参见对应版本的《OCP 用户指南》文档。

### 操作步骤

1. 登录 OCP。
 2. 在左导航栏上单击 **租户** ，进入租户页面。
 3. 在租户列表中，筛选 **租户模式** 为 **MySQL** 的租户，单击其租户名，进入 **总览** 页面。
 4. 在左侧导航栏上，单击 **用户管理** 。
 5. 在用户列表中，找到待修改权限的用户，在对应的 **操作** 列中，单击 **修改权限** 。

   ![修改权限](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/8382049061/p206093.png)
 6. 在弹出的对话框中，修改全局权限和数据库权限。

   **全局权限** 和 **数据库权限** 中涉及的权限类型说明如下表所示。

   | **权限** | **说明** |
   | --- | --- |
   | ALTER | ALTER TABLE 的权限 |
   | CREATE | CREATE TABLE 的权限 |
   | DELETE | DELETE 的权限 |
   | DROP | DROP 的权限 |
   | INSERT | INSERT 的权限 |
   | SELECT | SELECT 的权限 |
   | UPDATE | UPDATE 的权限 |
   | INDEX | CREATE INDEX、DROP INDEX 的权限 |
   | CREATE VIEW | 创建、删除视图的权限 |
   | SHOW VIEW | SHOW CREATE VIEW权限 |
   | CREATE USER | CREATE USER、DROPUSER、RENAME USER和REVOKE ALLPRIVILEGES 的权限 |
   | PROCESS | PROCESS 权限 |
   | SUPER | SET GLOBAL 修改全局系统参数的权限 |
   | SHOW DATABASES | 全局 SHOW DATABASES 的权限 |
   | GRANT OPTION | GRANT OPTION 的权限 |
 7. 单击 **提交** 。

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