论坛首页 入门技术论坛

权限管理最佳实践:四,数据级查询权限管理

浏览 10568 次
该帖已经被评为新手帖
作者 正文
   发表时间:2010-09-10  
downpour 写道

所以任何所谓的权限管理,只能做到框架级别,而不能深入业务。楼主的解决方案,我不是很看好。


使用中间件控制权限管理的,还有IBM Tivoli Access Manager for e-business 和Oracle Entitlements Server。他们在巨型跨国企业有应用案例。
0 请登录后投票
   发表时间:2010-09-10  
lgcpeter 写道
同意metadmin的功能权限和数据权限分开。
数据权限通过拼SQL语句也没有问题。
但,这样的框架侵入到项目中是不是项目必须得先花力气学习Ralasafe,并且要从项目设计阶段就有按照Ralasafe的规则走?

我们开发Ralasafe,其中有个目的就是为了容易使用,最好是只有少量IT知识的人就能使用。
Ralasafe的图形化界面,目前反馈还是很友好的、很容易使用的。不仅没有新概念,而且每步都有在线测试。确保无误。

强烈建议你尝试做1~3个功能。
0 请登录后投票
   发表时间:2010-09-10   最后修改:2010-09-10
ltian 写道
Ralasafe提供org.ralasafe.Ralasafe和org.ralasafe.WebRalasafe两个接口类。里面的query方法对应数据级查询权限。在应用系统相应的地方,调用该方法即可。我建议在系统的控制层调用,即:servlet或者action。

如果按照分层的理论,访问数据库的层次都是在业务逻辑层之下,业务逻辑层是在服务层之下。servlet或者action都已经是展现层了,更在服务层之上,为了权限难道要打破良好的分层设计吗?

建议在控制层接入Ralasafe,是因为我们平常的系统,也是在控制层接入数据访问层或者业务service层的。所以,我觉得对于查询,没有必要在service里面再次封装。DAO层一般无权限逻辑,所以不用关系。

ltian 写道

另外,访问数据都要通过WebRalasafe.query来进行,我不知道性能如何?把所有的数据访问层都交给权限去做,是不是去权限部分做的太多了,侵入的太多了?

你说的是否侵入太多,确实不少人有这么反映。很多人是这样的观点,不知道你是否一样。 很多人认为我们返回WHERE条件就可以了,而不是应该返回数据结果集。由业务service或者dao来根据where条件,查询数据。
我们的思路是:
1,大家的共同目标是:使用最有效率(或者说开发最有效率、或者性价比)查询出数据。
2,要能够控制列级,比如张三请求查询返回数据列有10列,李四请求查询却返回数据列5列。
所以,Ralasafe就不愿意分开了,而且使用JDBC访问,无废话高效查询,返回数据级是开发人员指定的映射类。

ltian 写道

楼主说遵循NIST的RBAC,不知道楼主是否真正了解RBAC Model,这里未体现出任何RBAC模型方面的优秀概念。如果我没记错的话,在2004年出来的NIST RBAC模型中里面没有用户群组的概念,而且,RBAC就是针对传统的用在操作系统中的GBAC(group based acess control)做的改进。可能楼主的权限系统确实非常棒,但是希望写文章的时候严谨一些。

Ralasafe模型与RBAC模型的关系是:
0 请登录后投票
   发表时间:2010-09-10  
还是新手啊,没怎么看懂。不过我以前做过简单的权限,也不是很难理解啊
0 请登录后投票
   发表时间:2010-09-12  
理想的权限方案:粗粒度的权限框架 + 充分的权限定制空间 + 若干具有通用性的已定制策略

这个方案基本做到了,不错。
0 请登录后投票
   发表时间:2010-09-12  
有点是让我莫名的伤感。

文中举例非常常见,不算复杂,但不代表该方案就只能满足该类需求。其实这是一个好的解决方案,应用到其他需求也是非常好的。

只是,怎样设计权限策略,怎样匹配,需要思考一下。
0 请登录后投票
   发表时间:2010-09-12  
metadmin 写道
downpour 写道

所以任何所谓的权限管理,只能做到框架级别,而不能深入业务。楼主的解决方案,我不是很看好。


使用中间件控制权限管理的,还有IBM Tivoli Access Manager for e-business 和Oracle Entitlements Server。他们在巨型跨国企业有应用案例。


连这种公司的产品你都信?

我现在就在用你说的这个IBM的方案,从头到尾就是垃圾。
0 请登录后投票
   发表时间:2010-09-12  
我相信他们的产品。而且他们产品是经受过市场考验的,并不是吹的。
0 请登录后投票
   发表时间:2010-09-15  
细粒度控制,有好的例子参考么?
0 请登录后投票
   发表时间:2010-09-20  
由于不返回WHERE条件,而是JDBC直接查询,导致无法和HIBERATE,IBATIS等集成。这样也导致很多应用不能与ralasafe集成了。
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics