V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
chho
V2EX  ›  问与答

求关于用户、角色、权限设计相关方面的资料

  •  
  •   chho · Mar 17, 2012 · 7813 views
    This topic created in 5156 days ago, the information mentioned may be changed or developed.
    主要是WEB方面的权限管理,从数据库的schema设计到前端url的权限控制,有没有什么最佳实践之类的文章,大家读过感觉比较好的,可以推荐一下吗?谢谢^^
    7 replies    1970-01-01 08:00:00 +08:00
    sharmy
        1
    sharmy  
       Mar 19, 2012
    table resources<urls> 存放所有的资源,这里是URL地址例如/member/edit
    table roles 存放所有的角色
    table resource_roles 存放角色和资源之间的关系,及哪些角色拥有哪些资源的访问权限
    table users 存放用户
    table role_users 存放用户和角色之间的关系,及哪些用户拥有哪些角色。

    这样最终就通过user->role->resource中转,可以得到每个用户拥有哪些资源的权限。

    当然还有一个全局访问策略问题,例如默认是允许全部访问,还是全部禁止访问。然后resource_roles这个表里面可以有个字段定义当前记录是定义允许访问,还是禁止访问。最后将全局策略和查询出的具体访问定义取交并集,即得到最终的权限列表。
    chho
        2
    chho  
    OP
       Mar 19, 2012
    @sharmy 您的db schema是基于RBAC来做的一个简略的设计吧,非常感谢!
    avatasia
        3
    avatasia  
       Mar 19, 2012
    @sharmy 假如某个用户拥有的权限是其角色的超集怎么办? 是不是从设计上不允许这样的事情
    holystrike
        4
    holystrike  
       Mar 19, 2012
    @avatasia 那要另起一个新角色来赋给这个用户
    sharmy
        5
    sharmy  
       Mar 21, 2012
    @holystrike 就是这样
    sospartan
        6
    sospartan  
       Mar 21, 2012
    毕业设计?
    那么多年过去~
    sealon
        7
    sealon  
       Mar 21, 2012
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5097 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 74ms · UTC 09:09 · PVG 17:09 · LAX 02:09 · JFK 05:09
    ♥ Do have faith in what you're doing.