更新mysql版本5.7.8-rc-log后,我授予了这样的权限:
GRANT select ON test_db.* TO 'test'@'host';
并收到以下错误:
SELECT'命令被拒绝用户'test'@'host'表'session_variables'
但是当我授予这样的特权时:
GRANT select ON *.* TO 'test'@'host';
它有效。有人可以帮忙吗?
答案 0 :(得分:3)
以下是与此问题相关的article1,article2,article3。
根据这些文章,解决方法是在show_compatibility_56 = on
中设置/etc/my.cnf
并重新启动mysql服务器。
MySQL 5.7引入了我们查询全局变量和状态变量的方式的变化:INFORMATION_SCHEMA.(GLOBAL|SESSION)_(VARIABLES|STATUS)
表现已弃用且为空。相反,我们将使用相应的performance_schema。(全局|会话)_(变量|状态)表。
但这种变化比这更远;还有一个安全变化。
非root用户获取:
mysql> show session variables like 'tx_isolation';
ERROR 1142 (42000): SELECT command denied to user 'normal_user'@'my_host' for table 'session_variables'
<强>方案吗
以下是解决方案,但并未真正解决问题:
<强>建议强>
我声称安全不是问题,如上所述。我声称,如果当前的解决方案没有改变,Oracle将再次陷入5.6中不容易迁移到GTID的陷阱。我声称一下子变化太多了。因此,我建议另外两种流程之一:
希望这会对你有所帮助。
答案 1 :(得分:0)
尝试以下方式,也许你会得到结果。
GRANT ALL PRIVILEGES ON bedgeaj_medmax.transactions to 'bedgeaj_root'@'%' IDENTIFIED BY 'password';
(OR)
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'%' WITH GRANT OPTION;
答案 2 :(得分:0)
试试这个,它对我有用:
GRANT SELECT ON performance_schema.session_variables TO stevejobs; GRANT SELECT ON performance_schema.session_status TO stevejobs;
答案 3 :(得分:-1)
$全部收听声纳。*播放声音&#39; @&#39;%&#39;由声纳&#39;;
识别$全部收听声纳。*播放声音&#39; @&#39; localhost&#39;由声纳&#39;;
识别$ GRANT SELECT ON *。* TO&#39; sonar&#39; @&#39;%&#39;由声纳&#39;;
识别$ GRANT SELECT ON *。* TO&#39; sonar&#39; @&#39; localhost&#39;由声纳&#39;;
识别$ GRANT ALL ON *。* to&#39; sonar&#39; @&#39;%&#39;由声纳&#39;;
识别$ GRANT ALL ON *。* to&#39; sonar&#39; @&#39; localhost&#39;由声纳&#39;;
识别