MySQL有五个权限表_MySQL权限管理(五)

一、什么是MySQL权限

各大帖子及文章都会讲到数据库的权限按最小权限为原则,这句话本身没有错,但是却是一句空话。因为最小权限,这个东西太抽象,很多时候你并弄不清楚具体他需要哪些权限。 现在很多mysql用着root账户在操作,并不是大家不知道用root权限太大不安全,而是很多人并不知道该给予什么样的权限既安全又能保证正常运行。所以,本文更多的是考虑这种情况下,我们该如何简单的配置一个安全的mysql。

mysql中存在4个控制权限的表,分别为user表,db表,tables_priv表,columns_priv表。

mysql权限表的验证过程为:

1.先从user表中的Host,User,Password这3个字段中判断连接的ip、用户名、密码是否存在,存在则通过验证。

2.通过身份认证后,进行权限分配,按照user,db,tables_priv,columns_priv的顺序进行验证。即先检查全局权限表user,如果user中对应的权限为Y,则此用户对所有数据库的权限都为Y,将不再检查db, tables_priv,columns_priv;如果为N,则到db表中检查此用户对应的具体数据库,并得到db中为Y的权限;如果db中为N,则检查tables_priv中此数据库对应的具体表,取得表中的权限Y,以此类推。

二、MySQL具体的权限

78eee7bd2dd8e8ed6c07c830801cf460.png

三、数据库层面(db表)的权限分析及分配建议

0f120047a3b83c8c5ea33e437f1475ec.png

四、配置权限需要的SQL

查看用户的权限

show grants for brian@'localhost';

用户授权(两种方法)

1、创建用户然后授权

创建用户

help create user;

create user brian@'localhost' identified by '123456';

# 授权

help grant;

所有权限库的所有表

create user brian@'localhost' identified by '123456';

grant all on briandata.* to brian@'localhost';

2、一条命令授权

grant all on briandata.* to brian@'localhost' identified by '123456';

根据网段和IP进行授权

grant all on briandata.* to brian@'192.168.10.%' identified by '123456';

grant all on briandata.* to brian@'192.168.10.0/255.255.255.0' identified by '123456';

回收权限(revoke)

revoke insert on briandata.* from 'brian'@'localhost';

# 查看用户的权限(对应的权限会变成Y)

select * from mysql.user\G;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值