MySQL 角色管理原创
# MySQL 角色管理
创建角色
create role test_role@'%';
1
授权角色
grant select,insert,update,delete on testdb.* to test_user;
1
将角色分配给用户
create user 'test'@'192.168.1.1' identified by '';
create user 'test1'@'192.168.1.2' identified by '';
grant test_role to 'test'@'192.168.1.1','test1'@'192.168.1.2';
1
2
3
2
3
激活角色:
SET DEFAULT ROLE test_user to 'test1'@'192.168.1.2';
SELECT current_role();
1
2
2
这种"激活"角色的方法可以让用户拥有角色所拥有的权限,但是不难看出来,每次给新建用户绑定一个角色,在新建用户登录之前,都得将该用户激活一下,从操作上看不是特别方便,如何让所有的指定的角色都即时生效呢?
MySQL提供了一个系统参数来解决这个问题,该参数是:
mysql> show variables like '%activate%';
+-----------------------------+-------+
| Variable_name | Value |
+-----------------------------+-------+
| activate_all_roles_on_login | OFF |
+-----------------------------+-------+
1 row in set (0.00 sec)
# 该参数是默认关闭的,直接打开即可。
set global activate_all_roles_on_login=on;
# 持久化
sed -i '79i\activate_all_roles_on_login = on' /data/db/mysql3306/my.cnf
# mysql8.0 永久生效,并写入 mysql 的 datadir 的 mysqld-auto.cnf 文件中
set persist activate_all_roles_on_login=on;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
撤销角色
REVOKE INSERT, UPDATE, DELETE ON testdb.* FROM test_user;
1
删除角色
DROP ROLE test_user;
1
上次更新: 10/2/2024
- 02
- Flink 集群部署指南 原创09-20
- 03
- MongoDB 集群Config Server 复制集的工作原理09-14