2012-03-05 56 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

有,为什么你遇到过这种可能的原因:

  • 它可能是你用来访问这不会对这个特定的表足够权限的用户。
  • 可能是用户名或密码不匹配。
  • 它可能是用户不存在的指定主机。
相关问题