为什么只有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 只会显示和它
完全匹配的权限,并不会引入%这个用户的权限,所以所有操作都用命令,能保证权限表的一致性,不然容易找不到问题。  

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
C# VS2012 86系统 mysql-5.5.27-win32 功能:利用动软代码生成器 从 数据库表或者视图中生成 的三层结构代码 实现 数据增删改查。 如果可以,请下载资源中 修改 的动软代码生成器 C#模板生成 1、由于之前使用 动软生成 java 网页源码,比较成功,此处编写C#程序时沿用,感觉更加适合。 2、直接调用动软的相关dll和生成的三层代码,可以较快的实现增删改查操作。 3、由于一些dll版本的问题及动软生成器自身的一些不完善,产生了一些问题并查找了挺久,所以把可以实现的版本发布出来共享。 前提: 使用的是 mysql数据库时才可能会出现以下问题 问题: 1、MySql.Data.dll 必须是5.6.1以上版本,否则会出现 “向信号量添加给定计数将导致其超出它的最大计数” 的问题。 2、动软代码生成时,必须增加该命名空间 using MySql.Data.MySqlClient; 3、动软代码必须修改 “工具”-“选项”弹出窗 后,点击 ”代码生成设置“-”字段类型映射“-”参数符号“中删除 mysql @,添加mysql ? 4、如果不修改3的设置,在增删改时 参数设置会失败。 5、mysql保存或者修改时,中文会出现乱码,这时必须 在DbHelperMySQL类的 连接字中增加Charset=utf8;即 protected static string connectionString = "Server=localhost;User Id=root;Password=root;Persist Security Info=True;Database=mnzfz;Charset=utf8;"; 6、如果要在局域网中远程访问,请 修改 mysql 权限grant select,update,insert,delete on *.* to 'root'@'192.168.0.1' identified by "123456";

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值