对于权限管理系统的一点小想法

山林中的疯子 发布于 02/09 22:38
阅读 150
收藏 0

权限管理系统大家都不会陌生,我就不多做介绍了。

很久之前就一直在想对于一个相对完善的权限管理系统应该是怎样的?

比如,某个角色或者用户对某一条数据具有怎样的操作权限,我们操作的时候怎样让它可以做到安全可靠,对于这条数据的某个字段又有怎样的操作权限,思考过很久也翻看过一些技术和论坛文章,不过一直想不到有什么好的解决方案,今天无意间看到一篇文章,却让我突然醒悟,以前想的方向为什么不是错的?基于这个想法又重新整理了自己的思路。

对于资源类似的菜单权限就不细说了,这个论坛内有很多。

这次主要说下数据权限,为自己留点资料,也希望诸位大神给点建议。废话不多说。

对每张表提供一个数据权限表,里边包含角色,或者用户,然后对应每条记录的操作权限,对应某个或者几个字段对应的操作权限。

对每条记录对应的角色权限做分离,让权限系统可以做集成,不过需要对每次查询都要先触发一次先查询检验,后查询数据,不过这种如果使用缓存方案应该是容易解决。

但是突然想到的一个引发问题,“数据量”这个难解的题。针对这种引发的查询缓慢我能提供的想法当前只有,缓存加数据分离,针对角色或者权限,或者两者进行分离。

以上想法还不成熟,忘大神们给点意见。特别是这个数据量的问题,这个方案可行性应该很低。

 

加载中
0
飞扬的梦
飞扬的梦

基于RBAC授权原理

以前解释叫基于角色授权,比如说,针对于行级别的控制,可以加一个字段叫roleid可以做到数据隔离

现在新的解释叫基于资源的授权,加一个字段叫resourceid做行级别的数据隔离。

事实上,在以前仅仅只是针对数据库管理系统的时候是这样做的,在数据量不大的情况下在数据表里添加字段。

针对现代系统,特别是使用key-value系统nosql或缓存,或者搜索引擎来说,就要根据ID取出数据项,然后逐行比对。这也是很多系统没有提供批量修改的原因。其实设计系统的时候,只需要适合,就行。不要考虑太多。

前年公司设计新系统的时候,技术总监提出需要支撑百亿级数据时,10万用户秒杀并发导致系统开发变得复杂,后来实际情况远远太不到这个量级,浪费了很多人力。

返回顶部
顶部