2010-11-18 9 views
8

MySQLデータベースのテーブルに挿入、更新、削除などができますが、テーブルのステータスを表示することはできません。誰かがこれを行うために必要な特権を知っていますか?MySQLの "SHOW TABLE STATUS"に対する適切なアクセス

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

良い質問で述べたように、ショートカットを使用!このマニュアルは完全にミュートされています。 http://dev.mysql.com/doc/refman/5.1/en/grant.html#grant-table-privileges –

+0

http://dev.mysql.com/doc/refman/5.0/ja/show.html - 最後の部分に加えてユーザーのコメントは間接的にSELECT = SHOWを参照しますが、ユーザーが更新/削除/挿入できる場合はなぜ選択からブロックされているのか分かりません – ajreal

+0

これはあなたの問題かもしれません:http://stackoverflow.com/questions/ 6527599/mysql-forgets-who-logged-in-command-denied-to-user –

答えて

1

最小限の(選択のみ)特権は、テーブルのステータスを取得するために必要なものです。どのバージョンのmysql?その後、

grant select on test_dev.districts to [email protected] identified by 'monkey'; 

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

作品。

これは何を返すのですか?

show grants for [email protected]; 
0

は最小限priveledgesでも、私のMySQLユーザは、SHOW TABLE STATUSのは、それぞれのデータベース上だ行うことができます...奇妙に思える:

は、ここに私のエラーメッセージです。

試している構文の例を挙げることはできますか?

SHOW TABLE STATUS IN sample LIKE 'users'

0

たぶん、特に列が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; 

はあなたにすべての利用可能な "情報表" を提供しています。


および/または "Show Comment of Fields FROM Mysql Table"

SHOW FULL COLUMNS FROM my_tab_name; 
関連する問題