【问题标题】:Proper permissions for "SHOW TABLE STATUS" in MySQLMySQL 中“SHOW TABLE STATUS”的正确权限
【发布时间】:2010-11-18 15:18:03
【问题描述】:

我可以对 MySQL 数据库中的表进行插入、更新、删除等操作,但无法显示表状态。有谁知道这样做需要哪些特权?

这是我的错误信息:

Access denied for user 'admin459'@'localhost' to database 'sample'

【问题讨论】:

标签: mysql mysql-error-1045


【解决方案1】:

我只需要最小(仅选择)权限即可获得表状态。什么版本的mysql?

grant select on test_dev.districts to td3@localhost identified by 'monkey';

然后:

mysql -pmonkey  -u td3 TAMS_development -e 'show table status;'

有效。

这会给你带来什么?

show grants for admin459@localhost;

【讨论】:

    【解决方案2】:

    看起来很奇怪……即使是我的 MySQL 用户也可以在他们各自的数据库上执行 SHOW TABLE STATUS。

    你能举一个你正在尝试的确切语法的例子吗?

    例如SHOW TABLE STATUS IN sample LIKE 'users'

    【讨论】:

      【解决方案3】:

      也许可以尝试另一种方式来查看有关特定表的所有信息,
      尤其是 column cmets(在 SHOW TABLE STATUS 期间“拒绝访问”旁边):

      直接访问数据库的 INFORMATION_SCHEMA(如果您有 SELECT-特权)。

      有关表格本身的信息(通常是一个元组):

      SELECT
          *
      FROM
          information_schema.tables
      WHERE
              table_schema = 'my_db'
          AND table_name = 'my_tab_name'
      ;
      

      有关列的信息:

      SELECT 
            table_name
          , column_name
          , column_comment
      FROM
          information_schema.columns
      WHERE
              table_schema = 'my_db'
          AND table_name = 'my_tab_name'
      ;
      

      它对我有用。


      还有一个

      SHOW TABLES FROM information_schema;
      

      为您提供所有可用的“信息表”。


      和/或使用快捷方式,如“Show Comment of Fields FROM Mysql Table”中所述

      SHOW FULL COLUMNS FROM my_tab_name;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-01-31
        • 2011-01-12
        • 1970-01-01
        • 1970-01-01
        • 2010-12-04
        • 2011-05-16
        • 2018-04-20
        相关资源
        最近更新 更多