yokila
yokila
Published on 2022-01-11 / 11 Visits
0
0

MySQL8.0 新建用户并授予权限流程

1. 登录

这里用的是root账号为例

执行命令:mysql -u root -p

2. 进入到mysql.db

执行命令:use mysql;

3. 查看当前的用户列表信息

主要查看的是用户名可访问地址授权能力

执行命令:select user,host,grant_priv from user;

4. 如果root用户无授权能力

无授权能力指的是 grant_priv = 'N',此时需要开启授权权限。

如果已有授权能力,则不需要执行此处的命令。

执行命令:update mysql.user set Grant_priv='Y' where user='root';

5. 创建用户,最后的参数是密码

‘localhost’表示只能本机登录,也可以设置你期望的登录ip,不设置的话默认是‘%’,也就是都可以登录

执行命令:create user 'happytest'@'localhost' identified by 'happytest';

指定登录地址为本地

默认是不限制登录ip

6. 给新用户授权

注:这里示例是授予给新用户一个数据库的操作权限,这个新用户只能操作这个数据库。

注:此处要授予操作权限的数据库名为:happy_db,把数据库名变成 . (小数点)就是给所有数据库的权限

注:如果 root 用户只允许 localhost 登录,而这里授权的时候又给用户授予不管任何地址都可以登录的能力,则会报无权限的错。此时需要把root用户也改成‘%’的登录限制才行(也就是说,授权者的可登录源ip范围应该 ≥ 被授权者的可登录源ip范围

执行命令:grant all privileges on happy_db.* to 'happytest'@'localhost';

登录限制超过授权者报错示例

写错被授权用户的名称也是一样的报错

授权成功案例

7. 刷新设置

本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。

MySQL 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问。

执行命令:flush privileges;

8. 删除对应的用户

(且为只能以该方式登录的用户)

执行命令:drop user happytest@localhost;

删除成功

不指定登录限制ip就是叫这个的全删


Comment