为什么只有grant usage权限却可以增删改查

用dbuser在192.168.0.1上登录远程数据库:


show grants;
显示

GRANT USAGE ON *.* TO 'dbuser'@'192.168.0.1' IDENTIFIED BY PASSWORD '*FE63xxxxxxxxxxxxx1C16A' 仅此一条, 


dbuser这个用户只有usage权限,查了下mysql manual,mysql usage权限就是空权限,默认create user的权限,只能连库,啥也不能干,但是这个用户却能对数据库表select, insert,update,delete,是怎么回事呢?


经过排查发现,


show grants显示的是本用户的权限,但是如果有user,db这些权限表的数据不一致情况,
它就没那么智能了,因为以前有dbuser@%的用户,赋给了权限,后来从user表删除了这个用户,
没有用drop user,所以user表没了这个用户,但是db表权限还在,另一个用户dbuser@192.168.0.1 访问时会去db表查看权限,
刚好mapping到了dbuser@%这个用户的权限,所以可以增删改查了,但是用show grants for user dbuser@192.168.0.1 只会显示和它
完全匹配的权限,并不会引入%这个用户的权限,所以所有操作都用命令,能保证权限表的一致性,不然容易找不到问题。  

  • 4
    点赞
  • 6
    收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:技术工厂 设计师:CSDN官方博客 返回首页
评论 2

打赏作者

ladofwind

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值