MySql8.0.24中用户管理


文章目录

  • 一. 用户
    • 1. 创建用户
      • 1.1 创建用户的方式
        • ① create user 指令
          • 不用密码
          • 设置登录密码
            • 设置密码的存活日期
        • ②直接对用户表user进行插入操作
    • 2. 查看创建的用户
    • 3. 删除用户
    • 4. 对用户的权限操作
      • (1)查看用户权限
      • (2). 授予权限
      • (3). 回收权限
  • 二. 角色
    • 1. 创建角色
    • 2. 激活角色(坑)★
    • 3. 给角色权限
    • 4. 查看角色权限
    • 5. 删除角色
    • 6. 角色权限给用户或其他角色

mysql

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

官方文档

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 表示所有权限
*.* 表示任意数据库的任意数据表
上面语句的就相当于授予超级用户一样的权限

在这里插入图片描述

角色部分的官方文档
角色是权限的集合, 比如角色项目主管,有对表的增删查改权限,如果用户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 用户用到的角色
在这里插入图片描述