一、MYSQL权限检查原理
1、检查用户是否有权限连接到服务器
判断依据:
1、你从哪来:host
2、你是谁:username
3、密码:password
用户的这三条信息存储在mysql库下的user表中
可以通过修改user表中的数据,更改这些信息如:
修改host:
update user set host = '10.2.1.73' where host = '127.0.0.1'
冲刷权限:flush privileges;
修改password:
update user set password =password('123456') whereuser = 'root'
flush privileges;
2、检查用户是否有权限执行此操作
二、权限的授予与收回
1、添加用户
语法:grant [权限1,权限2...] on *.* to user@'host' identified by 'password'
基本的全局权限:all,create,drop,insert,delete,update,select
例子:grant all on *.* to test@'10.2.1.%' identified by '123456' test用户可以在host为10.2.1.*的网段上登陆
通过select * from user 可以看到该用户的权限配置
2、回收权限
revoke all on *.* from test@'10.2.1.%';
注意:user表中的权限都是全局的 没有细致到库、表
3、给用户授库和表级别的权限
3.1数据库级别权限
语法:grant all on tag.* to test@'host' identified by 'password'
例子:grant all on tag.* to test@localhost identified by '123456' //给test用户赋予tag数据库的所有权限
flush privileges;
查看权限记录:use mysql
select * from db;
语法:revoke all on tag.* from test@'host'
例子:revoke all on tag.* from test@localhost; //收回test用户在tag数据库的所有权限
flush privileges;
3.2 表级别权限
语法:grant insert,update,select on tag.tag to test@'host' identified by 'password'
例子:grant insert,update,select on tag.tag to test@localhost; //给test用户赋予tag数据库的tag表的insert,update,select的权限
flush privileges;
查看权限记录:use mysql
select * from tables_priv;
语法:revoke all on tag.tag from test@'host';
例子:revoke all on tag.tag from test@localhost; //收回test用户在tag数据库的tag表所有权限