初学RBAC有感

wzy 09-04-16

总结一下就是如下定义

Who:权限的拥用者或主体(如Principal、User、Group、Role、Actor等等)
What:权限针对的对象或资源(Resource、Class)。
How:具体的权限(Privilege,正向授权与负向授权)。
Operator:操作。表明对What的How操作。也就是Privilege+Resource
Role:角色,一定数量的权限的集合。权限分配的单位与载体,目的是隔离User与Privilege的逻辑关系.

根据我的理解我有一个简单的需求
假设现在有两种用户一种是游客,另外一种是已注册用户,
已注册用户具有相关类型的角色例如 administrator,user等
用户就是上面所说的Who主体
administrator,user应该就是Role角色
其它一些名词解释我不知道结和具体的例子应该如何具体表示?
大家结合我的想法讨论一下!指教!!!

banq
2009-04-16 14:21

错误,who就是角色,你就简单想,以前一直是用户+权限设计,这样设计耦合太大,所以,中间引入角色 用户+角色+权限
角色是业务系统权限的象征。

不要搞那么多who what,你这是在做系统需求全面分析,而不是在做用户权限系统分析。

wzy
2009-04-16 15:50

谢谢banq老师的回答!我刚开始学习RBAC设计模式的自己感觉他好像是一个标志一个规范,讲得很好,思路很清晰!可是如何用去实现那?我最出的想法很幼稚,就是给已注册的用户分配一个我当时理解的权限现在应该叫角色!例如User表 姓名:张三 年龄:22
role admin其实我当时就是通过判断role的值作出相应的操作
role就像是一个标志!我现在学习RBAC设计方式就是想真正理解并学习如何实际一个权限系统!不知道如何将RBAC的提出的概念和思想转换成实际中Java中的类!以及在开发中将这些类如何分层!我是一个初学者请指教!