2012-03-05 18 views
9

私はユーザーを作成し、特定のデータベースに対して選択、更新、挿入、削除を許可するmysqlデータベースを持っています。Mysqlユーザーはテーブルから選択できますが、ビューはありません

データベースには、テーブルとビューの両方が含まれています。何らかの理由で、これらの作成されたユーザーは、ビューから選択しようとすると次のエラーが発生します。

Access denied for user 'someuser'@'%' (using password: YES) 

SELECT * FROM (`someview`) WHERE `somecolumn` = 0 

ただし、同じデータベース内のテーブルから選択するとこのエラーは発生しません。

私はこのアプリケーションを複数の場所に配備していますが、amazon rdsの使用を含めてどこでも動作しています。この特定のインスタンスはamazon ec2上で動作するmysqlサーバです。

+0

ビューにselectを明示的にユーザーに付与するとどうなりますか? – Randy

答えて

16

解決済み。エラーメッセージは誤解を招くことです。

原因は、ビューから選択していたユーザーではなく、ビューの定義者であったユーザーでした。

私はこのユーザーを再作成し、すべて正常です。

0

あなたはこの遭遇した理由として考えられるものがあります。

  • をそれはあなたが、これは、この特定のテーブルの上に十分な権限を持っていないアクセスするために使用しているユーザであることを。
  • ユーザー名またはパスワードが一致していない可能性があります。
  • 指定されたホストに対してユーザーが存在しない可能性があります。
関連する問題