小李程式™的专栏

有勇气来改变可以改变的事情,有度量接受不可改变的事情,有智慧来分辨两者的不同。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

分离权限管理与访问控制(转载)

Posted on 2005-06-20 20:19  尼斯湖李  阅读(831)  评论(0编辑  收藏  举报

权限管理与访问控制常常被放在一起讨论,不是吗?我们的软件设计往往一来就是一个系统组成模块图,在那个图里面一个傻傻的方框里面写上“权限控制模块”。但是,我认为我们还是应该认识到在这个“模块”里面两者的不同。

“访问控制”:是一个动态的概念,是发生在运行时的,也即RBAC里面说的Session中。当一个按照定义需进行控制的访问或调用发生时,“访问控制”即发挥作用了。“访问控制”发生的频率非常高;

“权限管理”:则是一个相对静态的概念,即对“访问控制”的规则进行定义的一种管理。在系统内访问或调用发生之前,这些控制规则必须被定义好,等待“访问控制”取用。通常,“权限管理”发生的频率非常低;

 

其实,以任意一个应用系统为背景,使用用例分析完全可以理解这种分离。在实际设计中,这两部分的数据访问设计也略有不同。“权限控制”是对应用系统中的访问控制规则数据的读、写操作;而“访问控制”是对数据的读操作,并且通常都有较强的性能要求。

 

在较高层次的构架上,我看到很多国外的研究者将这一部分以权限访问控制框架(Enterprise Access Control Framework)来模型化,并有较好的描述。在描述中,也是将各分开。这里摘录一段老外论文摘要里面的:

一个企业应用访问控制框架的效力依赖于这个框架中组件或组建模块的组成完整性。类似的框架必需由如下组件构成:(a)一个企业范围内的控制模块(b)在这个模块基础上的开发的一套对数据访问进行验证的机制(c)一套将企业应用访问控制信息数据映射到企业中不同应用系统中并发挥自然访问强制控制作用的机制。

可以在美国标准与技术协会的RBAC标准主页(Go->)上找到这篇论文。论文是关于RBAC的一个XML Schema模型的实现的,我现在正在翻译。