【MySQL】八,角色管理

创建角色

引入角色的目的是方便管理拥有相同权限的用户。恰当的权限设定,可以确保数据的安全性。
在这里插入图片描述
语法

CREATE ROLE 'role_name'[@'host_name'] [,'role_name'[@'host_name']]...

创建一个经理的角色

create role manager@'localhost';

给角色赋予权限

创建角色之后,这个角色默认是没有任何权限的,我们需要给这个角色赋予权限。
语法

GRANT privileges ON table_name TO 'role_name'[@'host_name'];

privileges代表权限的名称,多个权限以逗号隔开。可使用SHOW语句查询权限名称

show privileges;

给manager角色授予查询权限

grant select on dbtest01.employees to manager@'localhost';

查看角色的权限

show grants for manager@'localhost';

创建角色后,系统默认就会自动给你一个“USAGE”权限,意思是连接登录数据库的权限 。

回收角色的权限

语法

REVOKE privileges ON tablename FROM 'rolename';

回收manager的delete权限

revoke delete on dbtest01.employees from manager@'localhost';

删除角色

语法

DROP ROLE role [,role2]...
drop role admin;

给用户赋予角色

角色创建并授权后,要赋给用户并处于激活状态才能发挥作用。给用户添加角色可使用GRANT语句,语法形式如下:

GRANT role [,role2,...] TO user [,user2,...];

给用户 lisi 赋予 manager 角色

grant manager@'%' to lisi@'%';

查看是否添加成功

show grant for lisi@'%';

使用此用户登录,如果角色未激活,使用select current_role(); 语句进行查询的时候,会显示NONE
在这里插入图片描述

激活角色

方式1:使用set default role 命令激活角色

set default role all to lisi@'%';

方式2:将activate_all_roles_on_login设置为ON
默认情况
在这里插入图片描述
设置

SET GLOBAL activate_all_roles_on_login=ON;

这条 SQL 语句的意思是,对所有角色永久激活。运行这条语句之后,用户才真正拥有了赋予角色的所有权限。

撤销用户的角色

REVOKE role FROM user;
revoke manager@'localhost' from lisi@'%';

设置强制角色

方式1:服务启动前设置

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

方式2:运行时设置

SET PERSIST mandatory_roles = 'role1,role2@localhost,r3@%.example.com'; #系统重启后仍然
有效
SET GLOBAL mandatory_roles = 'role1,role2@localhost,r3@%.example.com'; #系统重启后失
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL中设计角色与权限表是为了实现数据库的访问控制和权限管理。一个用户可以拥有一个或多个角色,每个角色都对应着一组权限。 常见的角色包括管理员、开发人员、普通用户等。管理员一般具有最高权限,可以对数据库进行任意操作;开发人员具有较高的权限,可以对数据库进行增删改查等操作;普通用户则只能进行部分操作,例如查询数据。 为了实现角色与权限的管理,可以设计两张表:角色表和权限表。 角色表包含角色的基本信息,例如角色ID、角色名称等。每个角色会被赋予一组权限,可以通过外键关联到权限表中的权限ID。除此之外,角色表还可以包含其他的角色属性,例如角色描述等。 权限表包含权限的详细信息,例如权限ID、权限名称等。每个权限可以用来描述数据库的具体操作,例如SELECT、INSERT、UPDATE、DELETE等。权限表还可以包含其他的权限属性,例如权限描述、权限类型等。 通过在用户表中关联角色ID,可以实现用户与角色的关联。当用户登录数据库时,系统会根据用户所属的角色来判断用户是否具有执行特定操作的权限。管理员可以通过修改角色表和权限表来调整用户的权限。 综上所述,通过设计角色与权限表,可以实现MySQL数据库的访问控制和权限管理,确保数据库的安全性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值