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
推荐阅读:
![]() 路过(0) |
![]() 雷人(0) |
![]() 握手(0) |
![]() 鲜花(0) |
![]() 鸡蛋(0) |