davidoff567
V2EX  ›  问与答

关于 RBAC 模型经典 5 表中的 permission 表问题

  •  
  •   davidoff567 · Apr 28, 2023 · 2307 views
    This topic created in 1288 days ago, the information mentioned may be changed or developed.

    第一次接触 RBAC 模型,我想把权限控制细分到按钮级别,设计表的时候有 2 个问题查了半天,发现没有标准答案,想看看大家的思路。 1 、在给角色分配权限时,实际操作的仅仅是 [角色权限关联表] 吗? 2 、permission 表中的数据大家怎么对待的?主流做法是在表里维护一整套全量权限数据吗?

    Supplement 1  ·  Apr 28, 2023
    我这边现状是:用户表->用户角色关联表->角色表->角色权限关联表->权限表
    Supplement 2  ·  Apr 30, 2023
    已解决,谢谢大家
    12 replies  •  2023-04-29 06:26:46 +08:00
    xxmaqzas
    xxmaqzas
    Apr 28, 2023❤️1
    1
    主流方案可以参考 ruoyi ,不满足需求自行扩展即可
    renmu
    renmu
    Apr 28, 2023❤️1
    2
    对啊,给用户分配权限就可以了。

    我们权限表数据是由前端添加的。
    renmu
    renmu
    Apr 28, 2023❤️1
    3
    想要精确到按钮级别就会很麻烦,每个按钮都要去配置权限,可能还要配置使用的接口。
    ynkkdev
    ynkkdev
    Apr 28, 2023❤️1
    4
    想要前端精确到菜单的话,建议单独搞一个 menu 表,可以配置 menu 与 permission ,前端只关心 menu 里面这个用户有那些按钮、侧边栏。

    后端业务自己对过来请求和 permission 进行二次校验。
    v2eb
    v2eb
    Apr 28, 2023
    5
    角色关联权限
    权限关联菜单
    davidoff567
    davidoff567
    OP
    Apr 28, 2023
    6
    @renmu 前端添加 指的是允许用户(超级管理员)操作权限表数据吗?如果是的话 假设角色 A 和角色 B 同时拥有页面 C 的增删改查 4 个按钮权限,当角色 A 删除权限表内的所有页面 C 数据时,后端要先查出拥有整个权限的角色;新增 D 角色时 假如页面 C 的按钮权限数据被删干净了。以上的新增、删除例子 都会中断用户的操作吧,允许权限表数据被前端操作的话 会不会太灵活了?
    davidoff567
    davidoff567
    OP
    Apr 28, 2023
    7
    @youngce menu 表和 permission 表 中的数据都应该是静态的吗?我刚才合计了一下,权限表数据似乎应该读配置文件来获取,而不是允许用户在页面上维护。拿新增、删除角色的场景举例子,角色大概率和权限表数据高度耦合,动一处会影响全局,我理解的对吗?
    davidoff567
    davidoff567
    OP
    Apr 28, 2023
    8
    @v2eb 对 它们中间还有专门表达关联关系的表。你的意思是权限表后面再搞一个菜单表吗?权限表里面应该也能表达吧, 我这边现状是:用户表->用户角色关联表->角色表->角色权限关联表->权限表
    v2eb
    v2eb
    Apr 29, 2023
    9
    权限对应后台接口, 有菜单表, 对应每个页面。
    hhjswf
    hhjswf
    Apr 29, 2023 via Android
    10
    权限表里包括了菜单,树级结构
    miv
    miv
    Apr 29, 2023 via Android
    11
    这玩意儿有什么标准答案?直接参考若依完事。
    renmu
    renmu
    Apr 29, 2023 via Android❤️1
    12
    @davidoff567 a ,b 有按钮权限不代表有配置权限的权限,反正角色这玩意最后是交给运营自己配的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4785 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 08:16 · PVG 16:16 · LAX 00:16 · JFK 03:16
    ♥ Do have faith in what you're doing.