暂无图片
请问各位大佬,mysql数据库创建一个巡检用户,需要能查information_schema。请问应该如何授权?
我来答
分享
小北
2024-02-16
请问各位大佬,mysql数据库创建一个巡检用户,需要能查information_schema。请问应该如何授权?

请问各位大佬,mysql数据库创建一个巡检用户,需要能查information_schema。请问应该如何授权?

版本为mysql8,查询information_schema报错如下:

create user 'mymon'@'%' identified by 'tiger';

mysql> select * from INNODB_TABLES;
ERROR 1227 (42000): Access denied; you need (at least one of) the PROCESS privilege(s) for this operation

mysql> grant process on information_schema.* to mymon@'%';
ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'information_schema'

我来答
添加附件
收藏
分享
问题补充
5条回答
默认
最新
星星之火

查看用户权限

show grants;

查询指定用户权限

show grants for mymon@localhost;

授权要查询的库给mymon

grant select on test.* to mymon@localhost;

暂无图片 评论
暂无图片 有用 4
lu9up的数据库笔记

GRANT SELECT ON information_schema.* TO ‘patrol_user’@‘localhost’;

暂无图片 评论
暂无图片 有用 1
沈藏blue

创建用户之后create user 'mymon'@'%' identified by 'tiger';

需要赋权,grant select on information_schema.* to 'mymon'@'%' ;

暂无图片 评论
暂无图片 有用 0
o°cboy

grant process on information_schema.* to mymon@'%';

改为如下:

grant process on *.* to mymon@'%';

process的授权,需要基于*.*,不能基于某一个schema或数据库来做。

暂无图片 评论
暂无图片 有用 0
龙舌兰地落🌏

8.0无法单独授予用户information_schema权限,但有一个投机取巧的办法,就是加一个转义字符杠,绕开校验的同时又保证授权有效:

GRANT SELECT ON `information\_schema`.* TO 'mymon'@'%';

另外PROCESS是全局权限,必须给*.* :

GRANT PROCESS ON *.* TO 'mymon'@'%';
暂无图片 评论
暂无图片 有用 2
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏