2012-03-05 55 views
9

我有一個mysql數據庫,我在其上創建用戶,並授予他們在特定數據庫上的選擇,更新,插入和刪除。Mysql用戶可以從表中選擇,但不是視圖

數據庫包含表和視圖。由於某些原因,這些創建的用戶在嘗試從視圖中選擇時會出現以下錯誤。

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

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

但是,當從同一個數據庫中的表中進行選擇時,我不會收到此錯誤。

我已經將這個應用程序部署到多個地方,並且它在其他地方工作,包括使用亞馬遜rds。這個特定的實例是一個運行在amazon ec2上的mysql服務器。

+0

如果您明確授予對用戶的視圖選擇,該怎麼辦? – Randy 2012-03-05 23:05:56

回答

16

解決了它。錯誤消息是誤導性的。

原因是作爲視圖定義者的用戶不再存在,而不是從視圖中選擇的用戶。

我重新創建了這個用戶,一切都很好。

0

有,爲什麼你遇到過這種可能的原因:

  • 它可能是你用來訪問這不會對這個特定的表足夠權限的用戶。
  • 可能是用戶名或密碼不匹配。
  • 它可能是用戶不存在的指定主機。
相關問題