我可以在我的 MySQL 数据库中的表中插入、更新、删除等,但我无法显示表状态。有谁知道执行此操作需要哪些特权?
这是我的错误信息:
Access denied for user 'admin459'@'localhost' to database 'sample'
我可以在我的 MySQL 数据库中的表中插入、更新、删除等,但我无法显示表状态。有谁知道执行此操作需要哪些特权?
这是我的错误信息:
Access denied for user 'admin459'@'localhost' to database 'sample'
我只需要最小(仅限选择)权限即可获得表状态。什么版本的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;
似乎很奇怪......即使我的 MySQL 用户拥有最少的权限,也可以在他们各自的数据库上执行 SHOW TABLE STATUS。
你能举一个你正在尝试的确切语法的例子吗?
例如SHOW TABLE STATUS IN sample LIKE 'users'
也许尝试另一种方式来查看有关特定表的所有信息,
尤其是列注释(在“访问被拒绝”旁边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;