mysql的权限管理

不清楚的地方,希望大家多多见谅
举一个列子:
一个服务器ip为 ‘101.10.10.56’;
我们现在想要链接这个服务器的mysql
第一步:
我们要在本地的cmd 里进入mysql:
链接数据库
第二步:
use mysql;//选择数据库
select host,user,password from user; //我们只需要看见host,user,password字段
mysql的权限管理_第1张图片
第三步:

———扩展
我们可以新增一个用户 在user表中全局授权

grant [权限1,权限2,权限3,...] on *.* to user@'host' identified by '密码'  //*.*代表所有库所有表

常用权限有:all,create,drop,insert,delete,update,select

grant all on *.* to lisi@'192.168.2.%' identified by '';


下面我们新增一条用户,ip地址为127.0.0.1、用户名为:xf、密码‘123456’
mysql的权限管理_第2张图片
我给用户名ip地址权限是 select ,查询后我们可以看到已经成功入表,然后刷新权限(<—还有一步–>):flush privileges;

完成以上操作后我们可以看到ip为127.0.0.1 用户名为xf已经可以连接上ip为101.10.10.56服务器下的数据库,但是不能对数据库有任何操作,只限于查询


以上只是简单的举一个列子,下面我发一些扩展知识、大家可以自己动手试一试

收回权限

revoke all on *.* from list@'105.151.120';
flush privileges;

赋权管理某一个库 //此时user表中权限全是N 但mysql.db表中lisi 对于ecshop表有操作权限

grant all on ecshop.* to lisi@'192.168.1.%';

收回权限 //db表中无权限数据

revoke all on ecshop.* from list@'192.168.1.%';

赋与表级别权限 //此时user表中lisi无权限 db表中无lisi数据 tables_priv中有lisi针对表的权限

grant insert,update,select on test_database.test_table to lisi@'192.168.1.%'; //用户可以增改查,但不能删数据

提示:如果在开发中,某张表的数据,是原始数据,不能被删除,除了在php的业务逻辑上来控制,还可以从mysql用户权限管理来控制,mysql的权限控制,甚至可以精确到列

你可能感兴趣的:(php)