tctc4869
V2EX  ›  数据库

在 RBAC 权限模型中,如果要设计一个能分配指定范围的角色的角色,数据库这边要怎么做

  •  
  •   tctc4869 · Nov 6, 2019 · 2060 views
    This topic created in 2379 days ago, the information mentioned may be changed or developed.

    如题,已经为项目设计基本的 RBAC 模块,即用户,角色,菜单,以及两个关系表。关于角色分配的问题,我现在还不想考虑将角色分配与部门这种树形结构数据进行绑定这种复杂的角色分配。目前还是在要保证安全和性能基础上的比较简便的设计。

    我想增加一个比较特殊的角色,一个能为指定范围内的用户分配指定范围下的角色数据的角色。

    这句话如果通俗的说明。那可以这样描述。例 1: 车间管理员角色,能够为用户分配班长,组长,职工角色。例 2:总监角色可以为用户分配技术经理角色,市场经理角色,生产经理等经理型角色。至于这些角色所能看到的用户数据范围,这个先不用考虑了。主要是考虑这些角色所能看到的能分配角色的数据范围

    这种功能,如果不在后端语言那里修改(竟尽可能少的牵扯到后端语言),只从数据库的数据结构和 sql 查询语句上改,那么就基本 RBAC 模型上,哪个表要新增什么字段,或者要新建什么表。各位有什么思路和脑洞?或者有其他的兼顾性能与安全的 RBAC 模型简便设计思路吗?

    2 replies    2019-11-07 11:20:41 +08:00
    fanfou
        1
    fanfou  
       Nov 7, 2019
    角色表加个 pid 做成树性结构,上级角色拥有所有子节点权限。分配角色的时候拉出当前登录角色的所有下属角色列表。
    lllllliu
        2
    lllllliu  
       Nov 7, 2019
    用户 角色(权限组) 权限, 你的菜单是权限,当然你的角色的功能也是权限,新增角色对于角色编辑的权限组就可以了呀。车间管理具有给用户设置班长,组长,职工这三个权限就可以了呗。具体还可以细分,跟你角色对于菜单一样。这里用户组也是个菜单。管理无权显示或者点击其他能设置的用户组就可以了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5131 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 09:37 · PVG 17:37 · LAX 02:37 · JFK 05:37
    ♥ Do have faith in what you're doing.