探讨mysql的权限问题

liyuzhao8年前学习记录1559

不管是本地连接数据库还是远程连接数据库,要想连接成功必须要有四样:

1:host   –>连接地址

2:user  –>连接账号

3:password  –>连接账号的密码

4:port  –>连接的端口(这个一般不用填写,因为你如果用mysql,默认就是3306,除非你用第三方工具连接才会需要填上去)

注意:以下对数据库的增加权限,删除权限,增加用户,都只能用mysql原来的那个用户,就是root最高权限的用户

下面我们来探讨一下,如何新增加一个用户,并且能连接上数据库,并能使用相应的权限。

添加用户的语句:

grant all on *.* to test@’192.168.1.%’ identified by ‘aaaaaa’;

分析以上的代码:

all —>所有的权限,也就是create,select,update等等的权限,可以到mysql的文档查查grant看看

*.*  —>左边的星号代表为获取所有的数据库的权限,右边星号代表,所有的表权限,如果是test.*,就是获取test数据库的权限和获取test数据库下的所有表的权限

test  —>用户账号

@’192.168.1.%’ —>@这个符号是必须要的,192.168.1.%的意思是在192.168.1.1到192.168.1.254的ip区段都可以进行数据库连接。

identified by ‘aaaaaa’  —>这个的意思是为用户添加一个密码,密码为aaaaaa

完成上面的用户添加后测试一下是否能连接上数据库:(我本地的ip为192.168.1.74,可以在cmd下使用ipconfig进行本地ip查询)

已经能连接上数据库。但是此时的用户权限过大,除了grant这个权限没有外,所有的权限都具备,所以我们要收回它的权限,然后重新分配权限。

如图

收回权限:

revoke all on *.* from test@’192.168.1.%’;

flush privileges

代码和上面的那个解析差不多,就是revoke关键字不一样,这个是移除的意思,flush privileges是刷新缓冲,这个是必须要的。

此时只剩下一个,所有的数据库都不见了,是因为此用户所有的数据库和表的权限都没有。

增加用户的权限:

grant insert,update,select on discuz.* to test@’192.168.1.%’;

flush privileges;

很明显此discuz数据库已经显示出来,此时test用户已经有discuz数据库所有权限,现在已经能对此数据库进行insert,update,select的操作了。

以上是学习mysql数据库的一些权限的心得,如果有错欢迎指出来。此为钊叔原创,如要转载请说明出处,谢谢。



相关文章

centos7 下安装php扩展redis

最近一直在学习并发、tcp\ip协议等等,然后发现了redis很好用,就打算去实用一下,我打算实验一下,用redis查询15W条数据的时间,服务器的配置是:cpu:1核带宽:1M内存:1G废话不多说,...

探讨mysql编程形参的in,out,inout型

探讨mysql编程形参的in,out,inout型

mysql的形参可以传入数值,也可以传入变量,下面来探讨一下:先探讨in和out型:delimiter $create procedure p2(in a int , out b int)begind...

数据库的for each row定义

在mysql中,for each row 是定义行级触发器的语句,如果不写是错误的,因为mysql还没有支持语句触发器。在oracle中,如果不写默认为语句触发器,就是不管执行多少次,都只触发一次语句...

session和cookie原理透彻分析

一直以来对session和cookie这个两个的原来有点不明确。上次去公司面试的时候就有这个面试题,心里一直都想搞清楚这两个的原理,但是一直没有好的理解,所幸今晚翻了以前看十八哥的视频,非常透彻的讲解...

数据库实现1+到N得出总和的编程

数据库实现1+到N得出总和的编程

delimiter $    //这个是把结束符号变为$create procedure p1(N int)begindeclare total int default 0;dec...

redis在centos7 自启动,并用service启动或者关闭

redis在centos7 自启动,并用service启动或者关闭

1.为了让redis-server能在系统启动时自动运行,需要将redis服务作为守护进程(daemon)来运行,我们回/usr/local/cluster/7000/目录中找到一个redis.con...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。