基于角色的权限系统的问题

先来举个例,拿军队中管理机构比作一个复杂的系统,从上到下系统中有司令,军长,师长,旅长,团长等等,司令拥有最高权限,比喻可以撤军长的职,把师长降级为排长,还可以发动战争,军长又可以撤师长及他以下官的职务,并且还可以命令发射核武器,现在把司令,军长,师长,旅长,团长这些职务作为本系统中的角色,张三扮演司令的角色,王五和李二为军长,现在张三司令要取消军长能发射核武器的权限,他可以直接修改军长这一角色的权限即可,那么要是张三司令只取消李二军长一个人发射核武器的权限该怎么修改他的权限呢?李二是作为一个角色担任军长,所有军长这一角色拥有的权限是一至的,那么要修改某一个军长的权限怎么实现呢?我把这样称为分极角色,不知道这样有没有问题,自己又感觉这种角色实现好像和基于用户组的权限系统差不多,请高手指路。

我另外还有一种实现,把系统中一种操作称为一个权限,比喻撤军长的职,发射核武器,都称为一个权限,而一个角色可以拥有一个或多个权限,一个系统中的用户都扮演一个角色,现在可以把所有的权限给一个角色,张三担任这个角色,那么我们可以称他为司令,又把若干个权限给另外一个角色,把这个角色称为军长,王五担任这个角色,又把同样的权限给另外一个角色,也称他为军长,只是比王五那个军长和一个发射核武器的权限,李二担任这个角色,这样就可以实现,但是这样会导致系统中有N多个角色的问题。请高手指路。

上面打错了一个了,应试是 只是比王五那个军长少一个发射核武器的权限,

角色泛滥在RBAC中的确存在,不过看系统的容忍程度了

>把这样称为分极角色,不知道这样有没有问题,自己又感觉这种角色实现好像和基于用户组的权限系统差不多,请高手指路

我个人认为你对角色这个概念没有确切理解,角色有时是和实际中职责岗位一致,但是角色不是职责岗位,角色是一个虚拟概念,按照RBAC定义,角色是介于用户和权限之间的虚拟概念,所以角色是由用户和权限共同决定的。

司令想取消某个军长的发射核武器权力,那么就是说:在这个系统中,我们对需求并没有看透,这个系统中,存在很多隐含角色,比如军长角色,军长角色可能分两种军长1和军长2,两者区别是是否有核武器发射权力。

其实,任意变更角色定义是一种不规范的,甚至说是违规行为,就象玩游戏的人任意变得游戏规则,这些不正常现象是不在科学的考虑范围之类的。

但是,作为一种中国特殊现象,还是可以使用RBAC来对付,就是将角色核权限挂起钩来,复杂的就是角色树形结构,进行逻辑上下分层次,我想中国情况再特殊,隐含角色再多,他都要符合逻辑上下层次,司令不会倒浆糊搞出一个需求来,可以把司令自己角色变更了。

实际需求无外乎一些人利用复杂的思维为自己谋利或其他情况,但是,我们使用软件还是可以跟踪。