RBAC权限模型

简单的查询和批量插入

  • 一、什么是RBAC权限模型?
  • 二、使用演示
    • 1.查询案例
    • 2.保存角色权限(mybatis批量插入数据)


一、什么是RBAC权限模型?

RBAC(全称:Role-Based Access Control)基于角色的权限访问控制,在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。

  • 用户表

  • 权限表

  • 角色表

  • 用户角色表

  • 角色权限表

RBAC权限模型_第1张图片

二、使用演示

1.查询案例

根据某个用户id查询出所对应的权限:

3张表:
1 用户-角色表
2 角色-权限表
3 权限表

<--!用户存在多个角色,角色的权限有可能是重复的,所以查询出来的数据是会存在冗余的,所以使用distinct关键字消除重复数据-->

SELECT DISTINCT m.* FROM pe_role_user ru 
INNER JOIN pe_role_module rm ON ru.`role_id` = rm.`role_id`
INNER JOIN ss_module m ON m.`module_id` = rm.`module_id`
WHERE ru.`user_id`='002108e2-9a10-4510-9683-8d8fd1d374ef';

2.保存角色权限(mybatis批量插入数据)

用户角色中间表
RBAC权限模型_第2张图片
遇到的问题:我们从前端得到用户的角色是字符数组
如何批量插入

   
    <insert id="addUserRoles">
        insert into pe_role_user values
        <foreach collection="roleIds" item="roleid" separator=",">
            (#{userid},#{roleid})
        foreach>
    insert>

你可能感兴趣的:(sql,mysql)