«

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

时间:2023-12-25 18:25     作者:Anglei     分类: 数据库


有时候我们需要远程操作数据库,但是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访问连接成功!

4. 查询mysql中所有用户权限

输入命令: select host,user from user;

5. 关闭root用户远程访问权限

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

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

6. 输入命令:flush privileges;

修改权限之后,刷新MySQL相关表生效,发现root没有了远程访问的权限

现在通过远程连接发现无法访问

7. 修改远程操作权限(部分权限)
设置root用户操作权限

GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ WITH GRANT OPTION ; //设置用户root,拥有所有的操作权限,也就是管理员 ;

GRANT select ON . TO ‘root’@’%’ WITH GRANT OPTION ; //设置用户root,只拥有【查询】操作权限 ;

GRANT select,insert ON . TO ‘root’@’%’ ;  //设置用户root,只拥有【查询\插入】操作权限 ;

GRANT select,insert,update,delete ON . TO ‘root’@’%’ ;  //设置用户root,只拥有【查询\插入\更新\删除】操作权限 ;

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

本文完结,相关标签: mysql

 版权所有:Anglei
 文章标题:MySQL数据库修改用户权限(远程访问权限、操作权限)
 除非注明,本站文章如未特殊说明均为 MAXADA社区知识库 原创,且版权所有,请勿用于任何商业用途。

推荐阅读:

看完后感想如何?

路过(0)

雷人(0)

握手(0)

鲜花(0)

鸡蛋(0)
分享到: