我是 MySQL 的新手,更习惯于 MSSQL。但是,我们最近购买了 LabTech 管理软件,它使用 MySQL 后端。在编写自定义报告以跟踪网络状态时,我添加了一个新视图。以 root 身份执行时,新视图工作正常,但以用户身份运行它时,我得到:
错误代码:1142 拒绝用户“username”@“remote_address”对表“new_view”执行 SELECT 命令
我正在使用 MySQL Workbench 管理数据库,但我看不到任何地方可以查看视图的权限。我试过了
授予 labtech.new_view 上的 SELECT 权限至'用户名'@'localhost';刷新权限;
但这没有帮助。我错过了什么?
答案1
我想我遇到了和你一样的问题!当我恢复mysql数据时,也会出现这种情况。然后我发现它的定义者用户不是我设置的用户。只需使用:
SELECT DEFINER FROM information_schema.views WHERE table_schema='labtech' LIMIT 10;
显示定义者,你会发现它是老用户。要修改它,我认为你应该看看此链接在dba.stackexchange.com。
答案2
确保您认识到 mysql 将地址识别为用户名的一部分。