基于RBAC扩展的功能数据权限管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

JAVA程序编写规范第1页/共7页用户名称:武汉安思达信息技术有限公司密级:内部保密文件仅限内部使用基于RBAC扩展的功能数据权限管理(v1.0.0)武汉安思达信息技术有限公司WuhaniTrustInformationTechnologyCo.,LTD2011年03月JAVA程序编写规范第2页/共7页文档变更历史版本号版本日期作者说明v1.02011-03-29侯杰创建审核批准序号人员日期时间备注123文档呈送人员职位日期时间目的JAVA程序编写规范第3页/共7页1前言本文提供一种集成功能权限和数据权限的解决方法,以满足多层次组织中权限管理方面的集中控制。本方法是RBAC(基于角色的访问控制方法)的进一步扩展和延伸,即在功能权限的基础上增加数据权限的管理,实现功能权限的数据权限处理。2解释功能权限:用户在系统中能做什么的问题,如用户制定采购订单、下达订单等;数据权限:用户在系统下能看到些什么的问题,如察看集团用户能查看所有子公司的订单,公司用户只能查看本公司的采购订单;3名词解释业务对象:用户业务操作的具体处理对象,如订单、合同等。系统功能:对业务对象的操作动作,如创建订单、修改订单等;数据权限:业务系统中定义的业务对象的可视范围,如集团级权限、公司级权限、部门级权限、个人级别权限等;功能权限:被授权的对业务对象操作权限;角色:特定权限的集合;用户:参与系统活动的主体3.1需求背景有如下场景需求:湖北中烟工业公司下属有武汉卷烟厂、襄樊卷烟厂、恩施卷烟厂,现在需要定义几种角色:中烟采购中心物资材料部长--能察看所有分厂的采购订单;武汉卷烟厂采购业务科长--只能察看武汉烟厂的所有采购订单;襄樊卷烟厂采购业务科长--只能察看襄樊烟厂的所有采购订单;恩施卷烟厂采购业务科长--只能察看恩施烟厂的所有采购订单;JAVA程序编写规范第4页/共7页武汉卷烟厂备件科长--可以查看部门所有业务员的采购订单武汉卷烟厂采购业务员--只能看到自己经手的采购订单上述场景中:如基于传统的RBAC功能权限管理,权限只能控制到用户能访问哪些功能,而不能解决用户在某个功能下,控制不同用户看到不同数据的问题。基于RBAC扩展的功能数据权限管理,不同的角色在同个功能操作时,加载不同的数据过滤参数,从而实现数据权限的管理。我们为上述场景定义不同的数据权限:1、物资材料部长定义了集团级的数据权限,所以能够察看所有分厂的采购订单;2、其他几位业务科长分别定义了公司级的数据权限,所以只能察看归属公司的采购订单。3、备件科长定义了部门级的数据权限,所以只能看到部门内所有业务员的采购订单。4、采购业务员定义了个人级数据权限,所有只能看到个人经手的采购订单。3.2权限管理流程上面我们说我们扩展的数据权限管理可以解决销售订单场景所遇到的问题,现在我们来看看我们实现该功能的流程图JAVA程序编写规范第5页/共7页用户操作权限拦截器是否有功能权限加载角色数据权限配置过滤数据后的功能操作界面是禁止访问否带数据权限过滤参数的查询操作加载用户角色功能权限与用户操作的功能权限进行判断调用该用户所归属角色配置的数据权限,根据业务对象,去加载相关的SQL表达式1、当用户访问一个功能资源时,首先通过权限过滤器,权限过滤器加载该用户所拥角色的功能权限,然后判断用户是否有该功能的操作权限,如没有权限,则禁止该访问请求。2、当用户拥有功能的操作权限时,如该角色配置了数据权限,则通过API去调用该用户所归属角色配置的数据权限,根据传递的业务对象名,去加载相关的SQL表达式。3、数据权限配置参数将被注入到基本的查询操作中,用户得到的将是被过滤数据后的结果。3.3数据库设计1、基于RBAC的功能权限的数据库设计传统的基于角色的权限管理系统,如下图所示,最简单的基于角色的权限管理由功能、角色、JAVA程序编写规范第6页/共7页用户、角色功能授权和用户角色关系五部分组成用户表PK用户ID角色表PK角色ID功能表PK功能ID用户角色关系表PK,FK1用户IDPK,FK2角色ID角色功能授权表PK,FK1角色IDPK,FK2功能ID2、基于RBAC扩展的功能数据权限的数据库设计为实现数据权限控制,对基于角色的权限管理的数据模型进行了扩充,如下图所示JAVA程序编写规范第7页/共7页用户表PK用户ID角色表PK角色ID功能表PK功能ID数据权限表PK数据权限ID用户角色关系表PK,FK1用户IDPK,FK2角色ID角色功能授权表PK,FK1角色IDPK,FK2功能ID角色数据权限授权表PK,FK1数据权限IDPK,FK2角色ID数据权限配置表PK业务对象PK,FK1数据权限ID字段名表达式数值对比两张图,我们可以看到,他们之间的主要变化为:1、增加数据权限表和数据权限配置表两张表,数据权限表记录系统数据权限,如集团、分厂、部门、个人等权限数据(具体配置策略可灵活配置);数据权限配置表记录数据权限在不同业务对象上用来控制权限的参数。2、增加数据权限表,实现数据权限与角色的关联,这样将不同的数据权限配置到不同的角色上。通过这种设计,能够最小化地减少对原有权限系统的更改,并且可以很主动、灵活地增加数据的控制点。

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功