MySql8.0.24中用户管理

本文详细介绍了MySQL中如何创建和管理用户,包括使用`CREATE USER`指令设置密码和存活期,查看用户,删除用户及权限操作。同时,探讨了角色的创建、权限赋予,角色激活的注意事项,以及角色权限的查看、回收和分配。内容涵盖了用户和角色的完整生命周期管理,是MySQL权限控制的重要参考。
摘要由CSDN通过智能技术生成

一. 用户

在mysql安装的时候会创建一个超级管理员一般是root
使用超级管理员登陆mysql。
在这里插入图片描述

1. 创建用户

1.1 创建用户的方式

① create user 指令
不用密码
create user "用户名"@'主机名' 

在这里插入图片描述
没有指定主键名默认是%

mysql的%虽然表示是任何主机,但是它只是针对于通过TCP/IP连接过来的主机。

没有密码的登录方式
在这里插入图片描述
在这里插入图片描述

设置登录密码

同样,如果没指定主机名,默认是本地主机%

create user “用户名”@"主机名" identified by '密码';

主机名不是瞎指定,要绑定主机的IP,localhost是指定为本机,如果是远程登录则需要指定远程登录的IP作为主机名
在这里插入图片描述
上面使用的密码是明文,任意泄露,下面给出mysql中(笔者找到能用的加密函数)

  • SHA1
    在这里插入图片描述

  • MD5
    在这里插入图片描述

设置密码的存活日期
create user '用户名'@'主机名' identified by 密码 PASSWORD EXPIRE INTERVAL 存活时间;

在这里插入图片描述

②直接对用户表user进行插入操作

不常用,感兴趣可以看看,版本不一样不知道能不能用
mysql

2. 查看创建的用户

select user from mysql.user;

在这里插入图片描述

3. 删除用户

drop user "用户名"@"主机名"

在这里插入图片描述

4. 对用户的权限操作

mysql8.0权限官方文档(英语)

(1)查看用户权限

show grants for 用户名@主机名

在这里插入图片描述
超级用户具有数据库的所有权限

(2). 授予权限

官方文档

grant 权限1,权限2... on 数据库1.1, 数据库2.2... to 用户1,用户2... with grant option

with grant option 是表示运行用户把自己有的权限再授予给其他用户

grant all on *.* to 用户1,用户2... with grant option

all 表示所有权限
*.* 表示任意数据库的任意数据表
上面语句的就相当于授予超级用户一样的权限

在这里插入图片描述

(3). 回收权限

revoke 权限1,权限2...
  ON 数据库1.数据表1,数据库2.数据表2...
  FROM 用户1,用户2...;

在这里插入图片描述

没有级联权限回收

二. 角色

角色部分的官方文档
角色是权限的集合, 比如角色项目主管,有对表的增删查改权限,如果用户A被指定为项目主管(相当于把项目主管的权限都赋予了用户A),用户A就具有对表的增删查改权限
角色的创建,授权,权限回收,权限查看,删除操作和用户是一样的

1. 创建角色

create role 角色1, 角色2,....

在这里插入图片描述

2. 激活角色(坑)★

授予用户帐户的角色在帐户会话中可以是活动的或不活动的。如果授予的角色在会话中处于活动状态,则其权限适用;否则,他们不会。要确定当前会话中哪些角色处于活动状态,请使用该 CURRENT_ROLE()函数。
在这里插入图片描述
下面永久激活(还有一种方法不知道怎么用,还是这种方便点,另一种可以查看官方文档,会了以后可以给我分享分享怎么用)

# 查看 activate_all_roles_on_login 变量
mysql> show variables like 'activate_all_roles_on_login';
+-----------------------------+-------+
| Variable_name               | Value |
+-----------------------------+-------+
| activate_all_roles_on_login | OFF   |
+-----------------------------+-------+
1 row in set (1.53 sec)

# 启用该变量 先动态启用 之后可以将此参数加入my.cnf配置文件中
mysql> set global activate_all_roles_on_login = on;
Query OK, 0 rows affected (0.50 sec)

# 之后角色就会自动激活
mysql> create user 'dev2'@'%' identified by '123456';
Query OK, 0 rows affected (0.68 sec)

mysql> grant 'dev_role' to 'dev2'@'%';
Query OK, 0 rows affected (0.38 sec)

3. 给角色权限

grant 权限1,权限2... on 数据库1.1, 数据库2.2... to 角色1,角色2... with grant option

with grant option表示被赋予该角色的用户可以传播权限

在这里插入图片描述

4. 查看角色权限

show grants for 角色

在这里插入图片描述

5. 删除角色

drop role 角色名

6. 角色权限给用户或其他角色

grant 角色名 to 用户1,用户2,角色1...

在这里插入图片描述
如果想展开查看用户当前权限可以在show grants for 用户后加是using 用户用到的角色
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wuming先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值