业务系统、权限系统和用于业务系统的数据权限控制方法技术方案

技术编号:3851231 阅读:219 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种业务系统,包括:用户界面,用户通过所述用户界面输入指令;业务层,根据所述用户所输入的指令实现相应的系统业务逻辑;数据层,用于根据所述系统业务逻辑实现数据的访问操作;数据库,用于储存所述业务系统所需要的所述数据;权限系统,所述权限系统与所述业务层隔离,通过权限规则提供对所述数据层的权限控制。不仅实现了面向业务对象的数据层权限控制,并且处理了业务对象及关联的业务对象的数据权限,保持对象数据的完整性,权限控制由本发明专利技术的核心部分统一完成,业务程序开发人员从此不必再关注权限规则,程序编写时只需要完成具体业务逻辑。

【技术实现步骤摘要】

本专利技术涉及权限控制技术,更具体而言,涉及业务系统、权限系 统和用于业务系统的数据权限控制方法。
技术介绍
信息化系统的建设离不开安全、可靠的权限控制,而权限系统中 尤其以数据权限部分的实现最为复杂。如果要在数据权限层实现一套 通用的权限控制机制,支持用户灵活定制所需要的权限,完全解放程 序开发人员,使之在编写代码时不必关注权限规则,而将精力集中在 业务上,专注编写业务逻辑代码,难度更加之大。这里举例说明一下权限控制的业务场景就像交通法规一样,汽车行驶在公路上,什么时候可以拐弯,什 么地方可以掉头、并线等等,软件系统涉及的"交通法规"更加严 谨、复杂,这个软件系统中的"交通法规"我们称之为"权限系 统"。交通法规约束司机,当司机违反交通法规时就会受到相应的处 罚,甚至发生交通事故,换言之,司机可以犯错,但犯错将会付出代 价。软件系统中的权限控制相比交通法规来说要求更高,直接目的是 要杜绝错误的发生,这就要求,程序代码中,要有非常严谨的权限控 制逻辑部分,比如登陆"网上银行",当用户执行一个转账操作 时,系统要验证转账账号和帐户名称是否对应匹配,如果不匹配,则 不能转帐,如果匹配,则执行转账(这个例子把转账操作简化到了只 有两个步骤,实际比这要复杂),这个例子中转账对应的程序代码有 两部分业务逻辑,第一部分是验证账号和户名是否匹配,第二部分是转账,其中第一部分就是权限控制。上面举了一个非常简短的例子的片段,实际上, 一个系统中的各种权限规则是非常复杂的,除掉真正业务逻辑部分,程序开发人员还 要编写大量的权限控制代码逻辑才能保证系统的安全与正确。权限又可以分为这样几类功能权限,服务权限,和数据权限。本专利技术主要 针对权限系统中最为复杂的数据权限。下面就数据权限的范畴,参考图l做以下介绍软件系统对数据的访问与操作,如图l所示,都是通过UI层在 透过业务层,最终在数据层完成对数据的操作。而对数据的操作权限 的控制,就是数据权限的范畴,还以前面"网上银行"的例子来说 在做转账操作时,程序员编写代码时要在业务层完成对账号和户名的 权限检查,如果检查通过,在请求到数据层来做转账数据更新操作。 如果是一个复杂的业务权限管理控制逻辑,在业务层,程序员则要编 写更加复杂的代码才能完成权限管理控制逻辑,并且,真正软件的使 用者,对同一个功能点的权限控制要求可能不同,很难写出满足所有 用户要求的权限控制逻辑,因此程序开发的复杂度、代价都会非常 大。本专利技术就是要解决将数据权限从软件系统中抽象出来,实现统一 的解决方案,让程序开发人员在编写代码时将精力集中在业务上,不 需要关注权限控制,只要完成业务逻辑就可以,同时还有灵活的数据 权限定义机制供最终软件用户灵活定制所需权限控制逻辑。仍以"网 上银行"的例子来说,程序开发人员只需要编写转账的具体业务逻辑 代码即可,无需关注权限管理控制的逻辑,这样程序开发的复杂度、 代价都大大降低,同时,权限可由用户灵活的按需定制,就这个例子 来说,不同用户只要定义在"转账,,操作时所需要的权限规则即可。目前业界对数据权限的控制基本采用两种思路1. 整合组织,角色定制数据权限,将权限逻辑耦合在应用程序 逻辑中。这种思路的最大问题就是权限系统与组织结构因为耦合在一 起,需要程序开发人员将相当一部分精力投入到权限控制逻辑中,代 码工作量无形增加,代码复杂度加大,维护代价增大,所以很难解2.针对对象定制权限。这种思路的最大问题是使用限制比较 多,只能支持简单的表达式,多数不能支持上下文/自定义函数,程序开发人员仍投入相当精力。以上两种思路都不可避免的在业务层增加了程序开发的工作量, 加大了程序开发的代价,并且权限控制灵活度低,用户自定义扩展权 限规则很难。
技术实现思路
为了解决上述技术问题至少之一,本专利技术提供了 一种业务系统, 包括用户界面,用户通过所述用户界面输入指令;业务层,根据所 述用户所输入的指令实现相应的系统业务逻辑;数据层,用于根据所 述系统业务逻辑实现数据的访问操作;数据库,用于储存所述业务系 统所需要的所述数据;权限系统,所述权限系统与所述业务层隔离, 通过权限规则提供对所述数据层的权限控制。优选地,所述权限系统包括权限管理装置和数据权限合并装置, 所述权限管理装置用于使用户定义数据权限,所述数据权限合并装置 连接至所述权限管理装置,对所述用户通过所述权限管理装置定义的 数据权限和来自业务系统的执行程序的语法进行合并处理,并将处理 结果返回所述业务系统,以供编译执4亍。优选地,所述权限管理装置根据对象语法规则生成符合所述对象 语法规则的权限规则表达式。优选地,所述用户通过所述用户界面自定义所述权限规则。所述 用户通过所述用户界面输入的指令包括录入单据、搜索单据、汇总 报表。当所述用户输出入的指令超出所述权限规则所定义的所述用户 的权限时,所述权限系统返回失败结果给所述用户。优选地,所述权限规则通过抽象语法树计算表达式实现。本专利技术还提供了 一种用于业务系统的数据权限控制方法,包括以 下步骤在用户执行业务操作时,所述业务系统进行业务处理;所述 业务系统对所述业务进行语法解析,得到解析结果;权限系统将所述解析结果与所述用户预先定义的数据权限进行合并处理,生成权限规则表达式;所述业务系统编译执行所述权限规则表达式,实现所述数 据权限的控制。优选地,所述权限系统通过抽象语法树计算所述权限规则表达 式。所述权限系统与所述业务系统分开设置。本专利技术还提供了一种权限系统,用于业务系统,所述业务系统包 括用户界面,用户通过所述用户界面输入指令;业务层,根据所述 用户所输入的指令实现相应的系统业务逻辑;数据层,用于根据所述 系统业务逻辑实现数据的访问操作;数据库,用于储存所述业务系统 所需要的所述数据,所述权限系统与所述业务层隔离,通过权限规则 提供对所述数据层的权限控制。优选地,所述权限系统包括权限管理装置和数据权限合并装置, 所述权限管理装置用于使用户定义数据权限,所述数据权限合并装置 连接至所述权限管理装置,对所述用户通过所述权限管理装置定义的 数据权限和来自业务系统的执行程序的语法进行合并处理,并将处理 结果返回所述业务系统,以供编译执4亍。优选地,所述权限管理装置根据对象语法规则生成符合所述对象 语法规则的权限规则表达式。优选地,当所述用户输出入的指令超出所述权限规则所定义的所 述用户的权限时,所述权限系统返回失败结果给所述用户。优选地,所述权限规则通过抽象语法树计算表达式实现。根据本专利技术,不仅实现了面向业务对象的数据层权限控制,并且 处理了业务对象及关联的业务对象的数据权限,保持对象数据的完整 性,权限控制由本专利技术的核心部分统一完成,业务程序开发人员从此 不必再关注权限规则,程序编写时只需要完成具体业务逻辑。这样的 结果是帮助程序开发人员将精力完全集中在业务上,并且使得权限系 统控制与组织结构、业务逻辑彻底解藕,大大降低了程序开发人员的 原有工作量。本技术方案的技术效果体现为1. 降低程序开发人员的工作量;2. 精简程序开发代码;3. 提高代码可读性,可维护性;4. 间接降低了软件开发的人力成本;5. 权限适配更加灵活,间接减少了二次开发的人力成本。附图说明图l示出了相关技术的业务系统的逻本文档来自技高网
...

【技术保护点】
一种业务系统,包括:用户界面,用户通过所述用户界面输入指令;业务层,根据所述用户所输入的指令实现相应的系统业务逻辑;数据层,用于根据所述系统业务逻辑实现数据的访问操作;数据库,用于储存所述业务系统所需要的所述数据;其特征在于,进一步包括:  权限系统,所述权限系统与所述业务层隔离,通过权限规则提供对所述数据层的权限控制。

【技术特征摘要】

【专利技术属性】
技术研发人员:滕石欣熊悦阅叶琳方豪
申请(专利权)人:用友软件股份有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1