---
title: MySQL 模式下授予用户 all privileges 权限仍提示无权限查看表-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 MySQL 模式下授予用户 all privileges 权限仍提示无权限查看表相关的常见问题和使用技巧，帮助您快速解决 MySQL 模式下授予用户 all privileges 权限仍提示无权限查看表的难题。
---
切换语言

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

划线反馈

# MySQL 模式下授予用户 all privileges 权限仍提示无权限查看表

更新时间：2023-12-07 03:16

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

## 问题现象

业务租户的用户进行了授权 all privileges，但是授权后，业务用户无法执行查询表的语句，仍然报错权限不足，后面针对单表进行授权后，可以执行查询。

复现步骤如下：

1. 使用 root 用户登录数据库的 sys 租户。
 2. 执行如下语句创建名为 `tkipts` 的库，在库中创建表 `mtest` 并插入一条数据。

   ```shell
   obclient> create database tkipts;
   Query OK, 1 row affected (0.07 sec)

   obclient> use tkipts
   Database changed

   obclient> create table mtest(id int);
   Query OK, 0 rows affected (0.10 sec)

   obclient> insert into mtest values(1);
   Query OK, 1 row affected (0.04 sec)

   ```
 3. 创建 `admin_test` 用户。

   ```shell
   obclient> create user admin_test identified by '123456';
   Query OK, 0 rows affected (0.07 sec)

   ```
 4. 授予 `admin_test` 用户相应的权限。

   ```shell
   obclient> GRANT ALTER, CREATE, CREATE VIEW, DELETE, DROP, GRANT OPTION, INDEX, INSERT, SELECT, SHOW VIEW, UPDATE ON tkipts.* TO admin_test;
   Query OK, 0 rows affected (0.06 sec)

   obclient> GRANT SHOW DATABASES, PROCESS ON *.* TO admin_test;
   Query OK, 0 rows affected (0.06 sec)

   ```
 5. 查看 `admin_test` 拥有的权限，发现授权成功。

   ```shell
   obclient> show grants for admin_test;
   +----------------------------------------------------------------------+
   | Grants for admin_test@%                                              |
   +----------------------------------------------------------------------+
   | GRANT SHOW DB, PROCESS ON *.* TO 'admin_test'                        |
   | GRANT ALL PRIVILEGES ON `tkipts`.* TO 'admin_test' WITH GRANT OPTION |
   +----------------------------------------------------------------------+

   ```
 6. 使用 `admin_test` 用户登录数据库。

   ```shell
   obclient -h11.xxx -P2881 -uadmin_test@sys -Dtkipts -A -pxxx
   Welcome to the OceanBase.  Commands end with ; or \g.
   Your OceanBase connection id is 3221508215
   Server version: OceanBase 3.2.3.3 (r108000062023041511-33aee97541a93ccde986373e55fd0ba188615f29) (Built Apr 15 2023 11:55:17)

   Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.

   Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

   obclient [(none)]>

   ```
 7. 执行查询语句发现如下报错。

   ```shell
   obclient> show tables;
   Empty set (0.04 sec)
   obclient> select * from mtest;
   ERROR 1142 (42000): SELECT command denied to user 'admin_test'@'%' for table 'mtest'
   obclient>

   ```

## 问题原因

同时授予用户 `show databases` 权限和库级别权限会导致出现该问题。

## 影响版本

OceanBase 数据库 V3.x 版本。

## 解决方法及规避方式

- 规避方法：不同时授予 `show databases` 权限和库级别权限。
 - 应急方法：revoke show databases 权限。

上一篇

[执行类似 select * from (subquery) where rownum < int 语句导致报错 4016](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000659643)

下一篇

[SQL 报错：Varchar value is too long for the column](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000670003) ![有帮助](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) 咨询热线
