V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
414348489
V2EX  ›  问与答

关于 acl 权限控制

  •  
  •   414348489 · 2016-05-30 09:21:02 +08:00 · 1494 次点击
    这是一个创建于 3098 天前的主题,其中的信息可能已经有所发展或是发生改变。
    各位大神, cms 中现在要实现 acl
    现在用了 5 张表
    1 : roles 角色
    2 : permissions 权限
    3 : permission_role 权限—角色对应表
    4 : role_user 角色—用户对应表
    5 : users 用户表
    但这样只能对角色进行控制,不能细分到用户的权限,如果要细分到同角色不同用户的权限,该怎么改进下,谢谢
    6 条回复    2016-05-30 16:00:40 +08:00
    czzhengkw
        1
    czzhengkw  
       2016-05-30 09:52:07 +08:00   ❤️ 1
    你把角色当用户,一个用户一个角色,你就能控制到用户了……

    不过,你这个需求并不合理
    如果 A 用户有 100 个权限, B 用户要跟 A 用户同样 100 个权限,你是不是要授权 200 次?
    如果使用角色管理,就能解决这个问题了……
    414348489
        2
    414348489  
    OP
       2016-05-30 11:35:04 +08:00   ❤️ 1
    大神在哪里!!!!
    kfll
        3
    kfll  
       2016-05-30 15:09:22 +08:00   ❤️ 1
    freeipa 有这样的 acl 设定,不过他的存储不是 sql

    user 可以组合成 group ,两者属于用户系统; permission 可以组合成 role ,两者属于权限系统; permission 、 role 都可以指定给 user 、 group ;

    做 acl 的时候实际起作用的不是 user ~ permission 么,嵌套性能问题可以用缓存解决
    tabris17
        4
    tabris17  
       2016-05-30 15:22:47 +08:00   ❤️ 1
    RBAC 的话,理论上权限只切分到角色的粒度,如果两个用户权限不一致,那么就应该分成不同角色
    tabris17
        5
    tabris17  
       2016-05-30 15:24:43 +08:00   ❤️ 1
    另外,一个用户可以对应多个角色,用户间的权限细微差异,可以通过这点来实现
    Ouyangan
        6
    Ouyangan  
       2016-05-30 16:00:40 +08:00
    恰好在写这块业务,增加 user_permission , 登录查权限的时候查两张表求并集
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5256 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 07:18 · PVG 15:18 · LAX 23:18 · JFK 02:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.