私信  •  关注

Erik

Erik 最近回复了

只是想让你知道一个不寻常的情况,我收到了同样的错误。也许这对将来的人有帮助。

我开发了一些基本视图,在开发站点创建并将它们转移到生产站点。那周晚些时候,我修改了一个php脚本,突然出现一个错误,用户'local web user'@'localhost'的访问被拒绝。数据源对象没有改变,所以我把注意力集中在mysql中的数据库用户身上,同时担心有人入侵我的网站。幸运的是,网站的其他部分似乎没有受到伤害。

后来发现这些观点是罪魁祸首。我们的对象传输使用的是另一个(和远程:admin@ip address)用户,而不是本地网站用户。因此,视图是以“admin”@“ip-address”作为定义者创建的。视图创建安全性默认为

SQL SECURITY DEFINER

当本地web用户试图使用视图时,会发现定义者缺乏使用表的权限。一旦安全性更改为:

SQL SECURITY INVOKER

问题解决了。根据错误消息,实际问题与预期完全不同。