mysql之权限篇

mysql权限表:
mysql.user
mysql.db
mysql.host
mysql.table_priv
mysql.column_priv

由于权限信息数据量比较小,访问又非常频繁,mysql在启动时,就会将所有的权限信息都加载到内存中,并保存在几个特定的结构里。

所以每次手工修改相关权限表之后,都需要执行flush privileges通知mysql重新加载权限信息;但是通过grant、revoke以及drop user命令来修改的权限,则不必手工执行
flush privileges命令,因为这三种操作方式在修改系统权限信息的同时,也会去更新内存中的权限信息。

show grants for 'username'@'hostname'--查看用户权限

 

global level
此级别的权限信息保存在mysql.user表中
这个级别的权限是针对整个mysqld的,对数据库下的所有表及字段都有效。如果一个权限是在global级别上授予的,则会覆盖其他所有级别的相同权限设置。

 

database level
数据库级别的权限
针对特定的数据库赋予权限
问题场景:
有一次用grant给一个用户赋予了某一个database的权限,但是当时不知道mysql的权限构成,所以当时一个劲的去user表当中去找,一看没有改变,当时非常郁闷,
以为sql语句错误了,于是去搜去找了好久,不断的实验,还是没有解决,彻底崩溃,后来才发现是在db表当中的。


table level
column level
routine level
当前只有excute以及alter routine两种权限,针对的对象主要是procedure和function

 

后三种权限使用较少,只是在一些特殊情况下才这样用;另外database level可以在数据库不存在的情况下完成授权。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值