MySQL——角色管理

目录

一、角色的理解:

二、角色的使用:

1.创建角色

2.给角色赋权

3.查看角色权限

4.回收角色权限

5.删除角色

6.给用户赋角色

7.激活角色

8.撤销用户的角色

9.设置强制角色(即初始默认角色)


一、角色的理解:

        msyql引入角色的目的是方便管理具有相同权限的用户。类似于Linux中的用户组,将多个权限封装在一起赋给某个角色。如员工这角色,同一等级员工权限是一样的,假如再有新的员工要加入,管理者不用再将权限一一设置,只需要将员工这角色(权限)赋给新员工即可。

二、角色的使用:

1.创建角色

CREATE ROLE 'role_name'[@'host_name'] [,'role_name'[@'host_name']]...
#角色名称的命名规则和用户名类似。如果host_name省略,默认为% ,role_name不可省略,不能为空。

    注意,创建的角色被视为一个特殊的用户,它的定义(如用户名、主机名)记录在mysql.user表中。 

2.给角色赋权

#创建角色之后,默认这个角色是没有任何权限的,我们需要给角色授权。
GRANT 权限1,权限2,...权限n ON table_name TO 'role_name'[@'host_name'];

3.查看角色权限

SHOW GRANTS FOR 'role_name';

4.回收角色权限

REVOKE privileges ON tablename FROM 'rolename';

5.删除角色

DROP ROLE role [,role2]...

        注意, 如果你删除了角色,那么用户也就失去了通过这个角色所获得的所有权限。 

6.给用户赋角色

        角色创建并授权后,要赋给用户并处于激活状态才能发挥作用。(默认是未激活的)

#给用户添加角色
GRANT role [,role2,...] TO user [,user2,...];

#添加完成后使用SHOW语句查看是否添加成功
SHOW GRANTS FOR 'kangshifu'@'localhost';

#登录用户,并查询当前用户的角色
SELECT CURRENT_ROLE();

7.激活角色

   方式1:使用set default role 命令激活角色(服务重启后仍有效)

#举例:使用SET DEFAULT ROLE 为下面4个用户默认激活所有已拥有的角色如下:

SET DEFAULT ROLE ALL TO
 'dev1'@'localhost',
 'read_user1'@'localhost',
 'read_user2'@'localhost',
 'rw_user1'@'localhost';

    方式2:将activate_all_roles_on_login设置为ON

#登录时激活所有角色默认是关闭的,可通过下列命令查看
 show variables like 'activate_all_roles_on_login';

#设置为开启(对所有角色永久激活)
SET GLOBAL activate_all_roles_on_login=ON;

8.撤销用户的角色

#撤销用户角色
REVOKE role FROM user;
#eg: REVOKE 'school_read' FROM 'kangshifu'@'localhost';

#查看用户的角色信息
SHOW GRANTS FOR 'kangshifu'@'localhost';

9.设置强制角色(即初始默认角色)

方式一:服务启动前设置,修改/etc/my.cf配置文件

[mysqld]
 mandatory_roles='role1,role2@localhost,r3@%.atguigu.com'

方式二:运行时设置

#持久化设置,系统重启后仍然有效
SET PERSIST mandatory_roles = 'role1,role2@localhost,r3@%.example.com';  

#系统重启后失效
SET GLOBAL mandatory_roles = 'role1,role2@localhost,r3@%.example.com';  

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值