---
title: MySQL 租户中 GRANT ALL 语句授予了用户哪些权限 -OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于MySQL 租户中 GRANT ALL 语句授予了用户哪些权限 相关的常见问题和使用技巧，帮助您快速解决MySQL 租户中 GRANT ALL 语句授予了用户哪些权限 的难题。
---
切换语言

- 简体中文
- English

划线反馈

# MySQL 租户中 GRANT ALL 语句授予了用户哪些权限

更新时间：2026-05-09 09:36

适用版本： V2.2.x、V3.1.x、V3.2.x 内容类型：TechNote  

本文主要介绍 OceanBase 数据库 MySQL 模式中，`GRANT ALL` 语句会为用户授予哪些权限。

## MySQL 模式的权限

OceanBase 数据库 MySQL 模式下创建的用户可以分为两类：

- 业务系统的用户：一般会在业务库中执行分析或查询操作。

  通过指定业务库的方式授予权限，则会授予用户业务系统权限。

  ```unknow
  obclient> GRANT ALL ON <database_name> .* TO <user_name>

  ```

  对于普通用户，`GRANT ALL` 会授予以下权限。

  | 权限类别 | 功能 |
  | --- | --- |
  | 对象权限 | select_priv |
  | 对象权限 | insert_priv |
  | 对象权限 | update_priv |
  | 对象权限 | delete_priv |
  | 对象权限 | create_priv |
  | 对象权限 | drop_priv |
  | 对象权限 | index_priv |
  | 对象权限 | alter_priv |
  | 对象权限 | create_view_priv |
  | 对象权限 | show_view_priv |
 - 管理员用户：会涉及到 mysql、information_schema 等系统库的统计、分析等操作。

  不指定业务库则会授予用户级的权限。

  ```unknow
  obclient> GRANT ALL ON  *.* TO <user_name>

  ```

  对于管理员用户，`GRANT ALL` 会授予以下权限。

  | 权限类别 | 功能 | 描述 | OceanBase 数据库支持的版本 |
  | --- | --- | --- | --- |
  | 对象权限 | select_priv | 确定用户是否可以通过`SELECT`命令选择数据。 | V1.4.71 及以上版本 |
  | 对象权限 | insert_priv | 确定用户是否可以通过`INSERT`命令插入数据。 | V1.4.71 及以上版本 |
  | 对象权限 | update_priv | 确定用户是否可以通过`UPDATE`命令修改现有数据。 | V1.4.71 及以上版本 |
  | 对象权限 | delete_priv | 确定用户是否可以通过`DELETE`命令删除现有数据。 | V1.4.71 及以上版本 |
  | 对象权限 | create_priv | 确定用户是否可以创建新的数据库和表。 | V1.4.71 及以上版本 |
  | 对象权限 | drop_priv | 确定用户是否可以删除现有数据库和表。 | V1.4.71 及以上版本 |
  | 对象权限 | process_priv | 确定用户是否可以通过`SHOW PROCESSLIST`命令查看其他用户的进程。 | V1.4.71 及以上版本 |
  | 对象权限 | file_priv | 确定用户是否可以执行`SELECT INTO OUTFILE`和`LOAD DATA INFILE`命令。 | V1.4.71 及以上版本 |
  | 对象权限 | grant_priv | 确定用户是否可以将已经授予给自己的权限再授予其他用户。 | V1.4.71 及以上版本 |
  | 对象权限 | index_priv | 确定用户是否可以创建和删除表索引。 | V1.4.71 及以上版本 |
  | 对象权限 | alter_priv | 确定用户是否可以重命名和修改表结构。 | V1.4.71 及以上版本 |
  | 对象权限 | show_db_priv | 确定用户是否可以查看服务器上所有数据库的名字，包括用户拥有足够访问权限的数据库。 | V1.4.71 及以上版本 |
  | 对象权限 | super_priv | 确定用户是否可以执行某些强大的管理功能，例如通过`KILL`命令删除用户进程，使用`SET GLOBAL`修改全局MySQL 变量，执行关于复制和日志的各种命令。 | V1.4.71 及以上版本 |
  | 对象权限 | create_view_priv | 确定用户是否可以创建视图。 | V1.4.71 及以上版本 |
  | 对象权限 | show_view_priv | 确定用户是否可以查看视图或了解视图如何执行。 | V1.4.71 及以上版本 |
  | 对象权限 | create_user_priv | 确定用户是否可以执行`CREATE USER`命令，这个命令用于创建新的 MySQL 账号。 | V1.4.71 及以上版本 |
  | 对象权限 | create_synonym_priv | 确定用户是否可以创建同义词和公共同义词 | V1.4.71 及以上版本 |
  | 对象权限（集群级别） | ALTER TENANT | 修改租户信息的权限。 | V1.4.71 及以上版本 |
  | 对象权限（集群级别） | ALTER SYSTEM | 执行`ALTER SYSTEM`命令的权限。 | V1.4.71 及以上版本 |
  | 对象权限（集群级别） | CREATE RESOURCE POOL | 创建、修改和删除资源池的权限。 | V2.2.60 及以上版本 |
  | 对象权限（集群级别） | CREATE RESOURCE UNIT | 创建、修改和删除资源单元的权限。 | V2.2.60 及以上版本 |

  #### 注意

  假设有两个用户 u1 与 u2，如果 u1 具有 GRANT OPTION，并执行 GRANT ALL 将权限授予 u2。则会将 u1 的所有权限授予 u2。如果 u1 不具有 GRANT OPTION 则权限不允许转授。

## 查看业务用户权限

如果使用 `GRANT ALL` 语句为用户授予权限，使用 `SHOW GRANTS` 语句查询时只会返回 `GRANT ALL`，不会显示用户具体拥有哪些权限，所以无法通过 `SHOW GRANTS`语句来查询 `GRANT ALL` 包含的权限。但是您可以通过撤销 SELECT 权限然后查看用户剩余的权限的方式获知 `GRANT ALL` 包含的权限。

1. 使用 root 用户登录 OceanBase 数据库的业务租户。

   ```unknow
   [admin@hostname ~]$ obclient -hx.x.x.x -Pxxxx -uroot@MySQL#cluster -p

   ```
 2. 创建测试用户 obtest，并为其授予业务数据库 test 的权限。

   ```unknow
   obclient> CREATE USER obtest IDENTIFIED BY 'obtest';
   Query OK, 0 rows affected (0.03 sec)

   obclient> GRANT ALL ON test.* TO obtest;
   Query OK, 0 rows affected (0.02 sec)

   ```
 3. 回收 obtest 用户的 SELECT 权限，查看 obtest 用户剩余的权限。

   ```unknow
   obclient> REVOKE SELECT ON test.* FROM obtest;
   Query OK, 0 rows affected (0.02 sec)

   obclient> SHOW GRANTS FOR obtest;
   +----------------------------------------------------------------------------------------------------------+
   | Grants for obtest@%                                                                                      |
   +----------------------------------------------------------------------------------------------------------+
   | GRANT USAGE ON *.* TO 'obtest'                                                                           |
   | GRANT ALTER, CREATE, DELETE, DROP, INSERT, UPDATE, INDEX, CREATE VIEW, SHOW VIEW ON `test`.* TO 'obtest' |
   +----------------------------------------------------------------------------------------------------------+
   2 rows in set (0.00 sec)

   ```

   可见业务用户的权限为 SELECT、ALTER、CREATE、DELETE、DROP、INSERT、UPDATE、INDEX、CREATE VIEW 和 SHOW VIEW。

## 查看管理员用户权限

如果使用 `GRANT ALL` 语句为用户授予权限，使用 `SHOW GRANTS` 语句只会返回 `GRANT ALL`，不会显示用户具体拥有哪些权限，所以无法通过 `SHOW GRANTS`语句来查询 `GRANT ALL` 包含的权限。但是您可以通过撤销 SELECT 权限然后查看用户剩余的权限的方式获知 `GRANT ALL` 包含的权限。

1. 使用管理员用户 root 登录 OceanBase 数据库的业务租户。

   ```
 2. 创建测试用户 obtest，并为其授予管理员权限。

   obclient> GRANT ALL ON *.* TO obtest;
   Query OK, 0 rows affected (0.02 sec)

   ```unknow
   obclient> REVOKE SELECT ON *.* FROM obtest;
   Query OK, 0 rows affected (0.02 sec)

   obclient> SHOW GRANTS FOR obtest;
   +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   | Grants for obtest@%
                                                                                                                       |
   +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   | GRANT ALTER, CREATE, CREATE USER, DELETE, DROP, INSERT, UPDATE, INDEX, CREATE VIEW, SHOW VIEW, SHOW DATABASES, SUPER, PROCESS, CREATE_SYNONYM, FILE, ALTER TENANT, ALTER SYSTEM, CREATE RESOURCE POOL, CREATE RESOURCE UNIT ON *.* TO 'obtest' |
   +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   1 row in set (0.00 sec)

   ```

   可见管理员用户的权限为 SELECT、ALTER、CREATE、CREATE USER、DELETE、DROP、INSERT、UPDATE、INDEX、CREATE VIEW、SHOW VIEW、SHOW DATABASES、SUPER、PROCESS, CREATE SYNONYM、FILE、ALTER TENANT、ALTER SYSTEM、CREATE RESOURCE POOL 和CREATE RESOURCE UNIT。

Previous

[Oracle 模式下用户密码错误，错误代码 ERROR 1045](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000217886)

Next

[OBServer 日志中出现-4122 报错的原因](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000702110) ![有帮助](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) 咨询热线
