MySQL数据库修改用户权限(远程访问权限、操作权限)

版权声明:本文为博主原创文章,未经博主允许不得转载,转载请注明出处。 https://blog.csdn.net/m0_37482190/article/details/86624096

有时候我们需要远程操作数据库,但是MySQL-Server 出于安全方面考虑默认只允许本机(localhost, 127.0.0.1)来连接访问。

所以,我们必须先

修改root可以远程访问的权限

1.通过cmd连接进入数据库

命令输入:mysql -u root -p
输入密码登录数据库
在这里插入图片描述
命令输入:use mysql;
在这里插入图片描述

2.通过查询用户表,查看已有用户访问权限
命令:select User,authentication_string,Host from user;

在这里插入图片描述
这里我们看出host默认都是localhost访问权限

3.重点:修改用户远程访问权限

(1)修改为允许所有root用户远程访问

命令输入:GRANT ALL PRIVILEGES ON * . * TO ‘root’@’%’ IDENTIFIED BY ‘123456’ ;

这里的123456为你给新增权限用户设置的密码,%代表所有主机,也可以具体到你的主机ip地址(将’%‘改为’你的主机IP’)

(2)刷新数据库
命令输入:flush privileges;

这句表示从mysql数据库的grant表中重新加载权限数据
因为MySQL把权限都放在了cache中,所以在做完更改后需要重新加载。
在这里插入图片描述
执行完这两步,再次查询用户表命令:select User,authentication_string,Host from user
在这里插入图片描述
我们可以发现多了一个root用户,该用户所有的主机都可以访问,此时再次用sqlyog访问连接成功!

查询mysql中所有用户权限

输入命令: select host,user from user;
在这里插入图片描述

关闭root用户远程访问权限

输入命令:delete from user where user=“root” and host="%" ;

禁止root用户在远程机器上访问mysql

输入命令:flush privileges;

修改权限之后,刷新MySQL相关表生效,发现root没有了远程访问的权限
 在这里插入图片描述
现在通过远程连接发现无法访问

修改远程操作权限(部分权限)

设置root用户操作权限

>> grant all privileges on . to root@localhost identified by “123456” WITH GRANT OPTION ; //设置用户root,拥有所有的操作权限,也就是管理员 ;

>> grant select on . to root@localhost identified by “123456” WITH GRANT OPTION ; //设置用户root,只拥有【查询】操作权限 ;

>> grant select,insert on . to root@localhost identified by “123456” ;  //设置用户root,只拥有【查询\插入】操作权限 ;

>> grant select,insert,update,delete on . to root@localhost identified by “123456” ;  //设置用户root,只拥有【查询\插入\更新\删除】操作权限 ;

>> REVOKE select,insert ON what FROM root  //取消用户root的【查询\插入】操作权限 ;

总结目前到这里。

猜你喜欢

转载自blog.csdn.net/m0_37482190/article/details/86624096