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ユーザーでさえ、それぞれのデータベースでSHOWTABLESTATUSを実行できます。
試みている正確な構文の例を挙げていただけますか?
例えばSHOW TABLE STATUS IN sample LIKE 'users'
特定のテーブルに関するすべての情報、特に列のコメントを表示する別の方法を試してみてください(「アクセスが拒否されました」のほかにSHOW TABLE STATUS
):
データベースのINFORMATION_SCHEMAに直接アクセスします (SELECT 権限がある場合)。
テーブル自体に関する情報 (通常は 1 つのタペル):
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;
利用可能なすべての「情報テーブル」を提供します。
または、「 Mysql テーブルからフィールドのコメントを表示する 」で説明されているように、ショートカットを使用します。
SHOW FULL COLUMNS FROM my_tab_name;