关于权限管理的一点小思考

做任何系统组织结构和权限管理是必不可少的,同时也是最重要的,实现的好坏直接影响到系统的易用性和灵活性。走过看过这么多的系统,发现真正做得好的,易用性强系统却不多。

经典的 RBAC要求先将 权限封装成 角色,用户通过 角色获取权限,权限(或称许可)还由多个操作组成。


一般情况下,特别是对互联网的应用,严格的RBCA反而很难用。象exshop,淘宝等都允许直接将权限授给用户。管理员即可以通过给用户分配角色进行授权,也可以直接将权限分配给用户。

下面是淘宝卖家后台的权限分配界面:



由于角色内的权限是相对固定的,但很可能在分配权限时,需要在角色的基础上做 “微调”

举个例子,张三是一个普通员工,但是他除普通员工之外,领导还希望其干 一项其它的A工作(权限),如果是按严格的RBAC,管理员必须将A工作定义为一个角色ARole,然后再将ARole分配给张三。这无疑会让授权分配的工作变得很麻烦,且会造成系统中存在很多变了味的“角色”。

因此传统的RBAC可能在严格进行岗位分工的应用项目中可能比较适合,但是在互联网这个对自由性和简单性方面要求特别高的应用场景来说,传统的RBAC不太适用,应该采用“角色+权限”联合授权的方式更加适用一些。

引用
其实象Oracle这样的数据库系统,也不是严格的RBAC,也是采用“角色+权限”联合授权的方式。

猜你喜欢

转载自stamen.iteye.com/blog/1541829