我有一个mysql数据库,我在其上创建用户,并授予他们在特定数据库上的选择,更新,插入和删除。
数据库包含表和视图。由于某些原因,这些创建的用户在尝试从视图中进行选择时会出现以下错误。
Access denied for user 'someuser'@'%' (using password: YES)
SELECT * FROM (`someview`) WHERE `somecolumn` = 0
但是,从同一数据库中的表中进行选择时,我不会收到此错误。
我已将此应用程序部署到多个地方,并且在其他任何地方都可以使用,包括使用amazon rds。这个特殊的实例是在amazon ec2上运行的mysql服务器。
答案 0 :(得分:20)
解决了它。错误消息具有误导性。
原因是作为视图定义者的用户不再存在,而不是从视图中选择的用户。
我重新创建了这个用户,一切都很好。
答案 1 :(得分:0)
您可能会遇到这样的原因: