2016-04-08 10 views
3

です。最近のバージョンのMySQLWorkbench(6.3.6)を使用してMySQL 5.1.xサーバーにリモート接続しようとしています。MySQLWorkbench:アクセスが拒否されました。データベースのアクセス許可が必要です。エラー

私はMySQLのプロンプトで次のコマンドを実行した:

use mysql; 
grant all privileges on mydb.* to 'myuser'@'%' identified by 'mypassword'; 
flush privileges; 

と私はワークベンチを使用してスキーマ/ DBに接続できますが、私は、テーブル/他のスキーマ・オブジェクトのリストを取得することはできません。

これは私が取得しています正確な応答である:

Error Code: 1227 Access denied; you need the SHOW DATABASES privilege for this operation 

これは私がショーの助成金から取得しています応答です。私はこれをローカルホスト上のrootユーザーとして実行しました。私は私のDBを特定する可能性のある情報を難読化しました。

mysql> show grants for 'mydb'@'%'; 
+-----------------------------------------------------------------------------------------------------+ 
| Grants for [email protected]%                     | 
+-----------------------------------------------------------------------------------------------------+ 
| GRANT USAGE ON *.* TO 'mydb'@'%' IDENTIFIED BY PASSWORD 'mypassword' | 
| GRANT ALL PRIVILEGES ON `mydb`.* TO 'mydb'@'%'              | 
+-----------------------------------------------------------------------------------------------------+ 
2 rows in set (0.00 sec) 

どのように修正するのですか?ありがとうございました。あなたはmydbデータベース内のすべてのテーブルにユーザーに権限を与えている。このライン

grant all privileges on mydb.* ... 

答えて

6

SHOW DATABASESしかし、上記の行の影響を受けないグローバルな特権です。

また、SHOWデータベースコマンドを許可するには、以下を実行することができます:アプリでので、私は他のデータベースオブジェクトを表示しないよう

GRANT SHOW DATABASES ON *.* TO 'myuser'@'%' 
+0

は、方法は選択肢がありますか?私は本当にそれらを気にしない。私がアクセスできるデータベース内のオブジェクトのみ。 :) – mrjayviper

+0

あなたは 'mydb'のテーブルだけを見たいですか? @mrjayviper - もしそうなら、 'show tables in mydb; 'を使用してください。 – baao

+0

しかし、私のmysqlworkbenchの問題で助けにならないでしょうか? mysqlworkbenchは、私がアクセスできるデータベース内のオブジェクトもリストしません。 – mrjayviper