默认情况下,mysql.db表中包含的行表示任意用户可以访问test数据库和test_开头的数据库。这些行的User字段的值为空,表示匹配任意用户。这意味着这些数据库(test数据库和test_开头的数据库)默认可以被任意用户使用(即使没有权限的用户)。

mysql.db 默认设置:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 MySQL test数据库的权限 Mysql

 

初始化的mysql环境中mysql.db表默认包含的2行test数据库相关的配置,导致任意用户可以随意操作test或者test_开头的数据库,如果你想避免此问题,可以直接drop test数据库。

关于此现象,大家可能需要注意的问题:
1、正式环境千万别使用test数据库或者创建test_开头的数据库来存储业务数据
2、对用户的权限进行测试、验证的时候,千万别去test数据库,这可能误导你
3、如果想彻底避免以上问题,可以将mysql.db中test相关的数据delete掉。

 

【对已有test开头的数据库】,如果想取消某用户对test的权限,必须在test.db表里面增加一条该用户的记录,每项权限都是N即可。 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄