数据权限控制方法和装置的制作方法

文档序号:6332676阅读:377来源:国知局
专利名称:数据权限控制方法和装置的制作方法
技术领域
本发明涉及权限管理,具体而言,涉及一种数据权限控制方法和装置。
背景技术
在各类信息系统、互联网应用的实现中,权限管理已经成为系统的基本核心组成 部分,尤其在集团型企业应用中,由于企业的组织模型的复杂程度大大增强,要求系统的权 限模型具备良好的可用性以及伸缩性。因此,一个好的权限管理模型通常要求具备如下特 征1.功能权限。2.数据权限。3.特殊权限。而在实现上,通常基于成熟的基于角色的访问控制(RBAC)模型来实现功能权限。 通过对于特殊业务逻辑关系的提取,定义通用的业务规则来实现特殊权限,例如拥有者权 限、领导权限等。而数据权限通常包括以下几个方面1.实体级别数据权限。2.实体属性级别数据权限。3.数据权限的应用范围。通常基于RBAC模型定义的用户、角色以及实体的操作进 行逐级绑定分配。而在数据权限的实现上,通常采用如下方式1.基于实体方法进行实体数据的权限控制判断。2.基于组合条件SQL的方式进行权限控制判断。通过以上方式进行数据权限的实现,存在以下不足一、基于实体方法进行实例的权限控制判断,适用于属性级别数据权限,存在对于 实体级别数据权限存在查询时无法判断,数据批量处理、分页时无法处理等弊端。二、基于组合条件SQL的方式进行权限控制判断,能够较好的处理数据批量数据 处理以及分页等处理的弊端,但是在进行SQL组合以及执行时,在系统数据实体关系复杂, 并且数据量较大的情况下,性能较差,处理时间往往会超过20分钟。因此,需求一种针对数据权限的权限控制判断的方式,能够使用户在进行基于数 据权限判断的查询时,提高用户的查询效率,同时简化用户的操作。

发明内容
本发明所要解决的技术问题在于,提供一种针对数据权限的权限控制判断的方 式,能够使用户在进行基于数据权限判断的查询时,提高用户的查询效率,同时简化用户的 操作。有鉴于此,本发明提供一种数据权限控制方法,包括步骤102,为指定实体设置规则,并将所述规则持久化;步骤104,根据所述规则,取得所述指定实体的符合规则数据 并持久化;步骤106,在用户查询所述指定实体的数据时,提供所述符合规则数据以供所述 用户查询。通过该技术方案,可以将符合权限规则的数据预先持久化,用户在符合规则数据 中查询自己所需数据即可,提高了效率。在上述技术方案中,优选地,在所述步骤102中,为所述指定实体设置规则明细, 根据所有属性的规则明细得到所述规则。在上述技术方案中,优选地,所述规则明细的类型包括普通属性、参照关联属性、 用户及系统上下文属性;在所述步骤102中,为普通属性的规则明细生成第一 SQL脚本,为 参照关联属性的规则明细生成第二 SQL脚本和数据检测脚本,为用户及系统上下文属性的 规则明细生成第三SQL脚本,根据所有的第一 SQL脚本、所有的第二 SQL脚本、所有的第三 SQL脚本得到所述规则的SQL脚本,根据所有的数据检测脚本得到所述规则的数据检测脚 本;在所述步骤104中,取得所述指定实体的符合所述规则的数据检测脚本的数据,作为所 述符合规则数据;在所述步骤106中,所述用户根据所述规则的SQL脚本对所述规则数据进 行查询。通过该技术方案,使得可以根据不同情况灵活地配置规则,使生成的符合规则数据 更适合业务需要。在上述技术方案中,优选地,增加或修改实体的数据时,取得所述实体的符合规则 数据并持久化;删除所述实体的数据时,删除所述实体的已持久化的符合规则数据。在上述技术方案中,优选地,在所述实体的参照关联属性规则明细的关联实体进 行增加、修改或删除数据时,重新取得所述实体的符合规则数据并持久化。本发明还提供一种数据权限控制装置,包括规则设置模块,为指定实体设置规 则,并将所述规则持久化;符合规则数据模块,根据所述规则,取得所述指定实体的符合规 则数据并持久化;数据查询模块,在用户查询所述指定实体的数据时,提供所述符合规则数 据以供所述用户查询。通过该技术方案,可以将符合权限规则的数据预先持久化,用户在符 合规则数据中查询自己所需数据即可,提高了效率。在上述技术方案中,优选地,所述规则设置模块中,为所述指定实体设置规则明 细,根据所有属性的规则明细得到所述规则。在上述技术方案中,优选地,所述规则明细的类型包括普通属性、参照关联属性、 用户及系统上下文属性;所述规则设置模块为普通属性的规则明细生成第一 SQL脚本,为 参照关联属性的规则明细生成第二 SQL脚本和数据检测脚本,为用户及系统上下文属性的 规则明细生成第三SQL脚本,根据所有的第一 SQL脚本、所有的第二 SQL脚本、所有的第三 SQL脚本得到所述规则的SQL脚本,根据所有的数据检测脚本得到所述规则的数据检测脚 本;所述符合规则数据模块取得所述指定实体的符合所述规则的数据检测脚本的数据,作 为所述符合规则数据;所述数据查询模块供所述用户根据所述规则的SQL脚本对所述规则 数据进行查询。通过该技术方案,使得可以根据不同情况灵活地配置规则,使生成的符合规 则数据更适合业务需要。在上述技术方案中,优选地,还包括数据维护模块,在增加或修改实体的数据时, 通知所述符合规则数据模块取得所述实体的符合规则数据并持久化;在删除所述实体的数 据时,通知所述符合规则数据模块删除所述实体的已持久化的符合规则数据。在上述技术方案中,优选地,还包括关联数据维护模块,在所述实体的参照关联属性规则明细的关联实体进行增加、修改或删除数据时,通知所述符合规则数据模块重新 取得所述实体的符合规则数据并持久化。通过上述技术方案,可以实现一种数据权限控制方法和装置,能够使用户在进行 基于数据权限判断的查询时,提高用户的查询效率,同时简化用户的操作。


图1是根据本发明的一个实施例的数据权限控制方法的流程图;图2是根据本发明的一个实施例的数据权限控制装置的框图;图3是根据本发明的一个实施例的数据权限控制装置的整体结构的示意图;图4是根据本发明的一个实施例的数据权限控制方法的规则设置的流程示意图;图5是根据本发明的一个实施例的数据权限控制方法的规则、规则明细和符合规 则数据的关系示意图;图6是根据本发明的一个实施例的数据权限控制装置的规则、规则明细和符合规 则数据的详细关系示意图;图7是根据本发明的一个实施例的数据权限控制方法的用于处理的业务实体的 示意图。
具体实施例方式为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实 施方式对本发明进行进一步的详细描述。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可 以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实 施例的限制。图1是根据本发明的一个实施例的数据权限控制方法的流程图。如图1所示,本发明提供一种数据权限控制方法,包括步骤102,为指定实体设置 规则,并将所述规则持久化;步骤104,根据所述规则,取得所述指定实体的符合规则数据 并持久化;步骤106,在用户查询所述指定实体的数据时,提供所述符合规则数据以供所述 用户查询。通过该技术方案,可以将符合权限规则的数据预先持久化,用户在符合规则数据 中查询自己所需数据即可,提高了效率。在上述技术方案中,在所述步骤102中,为所述指定实体设置规则明细,根据所有 属性的规则明细得到所述规则。在上述技术方案中,所述规则明细的类型包括普通属性、参照关联属性、用户及 系统上下文属性;在所述步骤102中,为普通属性的规则明细生成第一 SQL脚本,为参照关 联属性的规则明细生成第二 SQL脚本和数据检测脚本,为用户及系统上下文属性的规则明 细生成第三SQL脚本,根据所有的第一 SQL脚本、所有的第二 SQL脚本、所有的第三SQL脚 本得到所述规则的SQL脚本,根据所有的数据检测脚本得到所述规则的数据检测脚本;在 所述步骤104中,取得所述指定实体的符合所述规则的数据检测脚本的数据,作为所述符 合规则数据;在所述步骤106中,所述用户根据所述规则的SQL脚本对所述规则数据进行查 询。通过该技术方案,使得可以根据不同情况灵活地配置规则,使生成的符合规则数据更适
6合业务需要。在上述技术方案中,增加或修改实体的数据时,取得所述实体的符合规则数据并 持久化;删除所述实体的数据时,删除所述实体的已持久化的符合规则数据。在上述技术方案中,在所述实体的参照关联属性规则明细的关联实体进行增加、 修改或删除数据时,重新取得所述实体的符合规则数据并持久化。图2是根据本发明的一个实施例的数据权限控制装置的框图。如图2所示,本发明还提供一种数据权限控制装置200,包括规则设置模块202, 为指定实体设置规则,并将所述规则持久化;符合规则数据模块204,根据所述规则,取得 所述指定实体的符合规则数据并持久化;数据查询模块206,在用户查询所述指定实体的 数据时,提供所述符合规则数据以供所述用户查询。通过该技术方案,可以将符合权限规则 的数据预先持久化,用户在符合规则数据中查询自己所需数据即可,提高了效率。在上述技术方案中,所述规则设置模块202中,为所述指定实体设置规则明细,根 据所有属性的规则明细得到所述规则。在上述技术方案中,所述规则明细的类型包括普通属性、参照关联属性、用户及系 统上下文属性;所述规则设置模块202为普通属性的规则明细生成第一 SQL脚本,为参照关 联属性的规则明细生成第二 SQL脚本和数据检测脚本,为用户及系统上下文属性的规则明 细生成第三SQL脚本,根据所有的第一 SQL脚本、所有的第二 SQL脚本、所有的第三SQL脚 本得到所述规则的SQL脚本,根据所有的数据检测脚本得到所述规则的数据检测脚本;所 述符合规则数据模块204取得所述指定实体的符合所述规则的数据检测脚本的数据,作为 所述符合规则数据;所述数据查询模块206供所述用户根据所述规则的SQL脚本对所述规 则数据进行查询。通过该技术方案,使得可以根据不同情况灵活地配置规则,使生成的符合 规则数据更适合业务需要。在上述技术方案中,还包括数据维护模块,在增加或修改实体的数据时,通知所 述符合规则数据模块204取得所述实体的符合规则数据并持久化;在删除所述实体的数据 时,通知所述符合规则数据模块204删除所述实体的已持久化的符合规则数据。在上述技术方案中,还包括关联数据维护模块,在所述实体的参照关联属性规则 明细的关联实体进行增加、修改或删除数据时,通知所述符合规则数据模块204重新取得 所述实体的符合规则数据并持久化。图3是根据本发明的一个实施例的数据权限控制装置的整体结构的示意图。如图3所示,规则设置模块202用于,设置规则,通过选择要启用数据权限的实体 及设置规则相关的明细条件。在设置数据完成后,要根据规则检测并持久化符合规则数据。数据维护模块208用于维护数据,增删改已启用数据权限实体的数据时,执行更 新符合规则数据。保证符合规则数据中时刻保持准确的数据。关联数据维护模块210,如果规则设置中有关联其他实体属性,则进行关联实体的 数据维护时,需要同步更新符合规则数据。数据查询模块206,在进行查询数据时,首先查询出可以应用的规则,然后依据前 期维护的符合规则数据,以及规则SQL脚本,查询规则数据及符合规则数据。符合规则数据模块204,在整个流程中,规则数据,业务数据、以及业务数据符合规 则的数据关联都进行数据持久化,以保证查询优化。
图4是根据本发明的一个实施例的数据权限控制方法的规则设置的流程示意图。如图4所示,步骤402,首先选择规则作用实体。规则作用实体指的是应用数据权 限规则的实体。在同一个实体上可以绑定多个规则,规则关系可以为“或”或者“与”的关 系,并且对于不同的场景可以启用不同的规则组合。例如采购订单实体。步骤404,其次选择实体属性增加规则条目。本步中,选择第一步选择的实体,然后 选择某个属性,用以针对这个属性设置规则条目即明细。例如采购订单的采购订单总金额 属性。步骤406,设置规则条目属性。本步完成规则条目即明细的标识其特征的属性设置。步骤408,确定是否继续添加规则条目。在每个规则中可以包含多个规则明细。本 步骤中可进行多次添加。步骤410,保存规则数据。本步负责将规则数据进行持久化本步负责将规则数据进 行持久化。步骤412,计算符合规则数据并持久化。根据上一步持久化的数据中的检测规则, 检测是否有数据符合规则,如果符合规则则持久化保存。例如采购订单上定义了一个数据 权限规则“规则1”,规则1保存后,立刻依据规则1的检测规则,检测现有的所有采购订单 是否有符合规则的数据,如果有,则将符合规则的数据标识持久化。图5是根据本发明的一个实施例的数据权限控制方法的规则、规则明细和符合规 则数据的关系示意图。图6是根据本发明的一个实施例的数据权限控制装置的规则、规则 明细和符合规则数据的详细关系示意图根据本实施例中的数据权限控制方法,解决性能问题的关键在于规则策略以及对 于符合数据权限规则的数据的检测判断并持久化处理,和依据此持久化数据进行的SQL检 索过程。在实施例中,数据权限的规则策略为依据规则的特征将规则明细分为三种类型, 并且对每种类型的规则明细的持久化以及检索处理进行不同的优化处理,从而达到优化性 能的效果。规则明细类型定义如下表所示
权利要求
一种数据权限控制方法,其特征在于,包括步骤102,为指定实体设置规则,并将所述规则持久化;步骤104,根据所述规则,取得所述指定实体的符合规则数据并持久化;步骤106,在用户查询所述指定实体的数据时,提供所述符合规则数据以供所述用户查询。
2.根据权利要求1所述的数据权限控制方法,其特征在于,在所述步骤102中,为所述 指定实体设置规则明细,根据所有属性的规则明细得到所述规则。
3.根据权利要求2所述的数据权限控制方法,其特征在于,所述规则明细的类型包括 普通属性、参照关联属性、用户及系统上下文属性;在所述步骤102中,为普通属性的规则明细生成第一 SQL脚本,为参照关联属性的规 则明细生成第二 SQL脚本和数据检测脚本,为用户及系统上下文属性的规则明细生成第三 SQL脚本,根据所有的第一 SQL脚本、所有的第二 SQL脚本、所有的第三SQL脚本得到所述规 则的SQL脚本,根据所有的数据检测脚本得到所述规则的数据检测脚本;在所述步骤104中,取得所述指定实体的符合所述规则的数据检测脚本的数据,作为 所述符合规则数据;在所述步骤106中,所述用户根据所述规则的SQL脚本对所述规则数据进行查询。
4.根据权利要求1至3中任一项所述的数据权限控制方法,其特征在于,增加或修改实 体的数据时,取得所述实体的符合规则数据并持久化;删除所述实体的数据时,删除所述实体的已持久化的符合规则数据。
5.根据权利要求4所述的数据权限控制方法,其特征在于,在所述实体的参照关联属 性规则明细的关联实体进行数据的增加、修改或删除时,重新取得所述实体的符合规则数 据并持久化。
6.一种数据权限控制装置,其特征在于,包括规则设置模块,为指定实体设置规则,并将所述规则持久化; 符合规则数据模块,根据所述规则,取得所述指定实体的符合规则数据并持久化; 数据查询模块,在用户查询所述指定实体的数据时,提供所述符合规则数据以供所述 用户查询。
7.根据权利要求6所述的数据权限控制装置,其特征在于,所述规则设置模块中,为所 述指定实体设置规则明细,根据所有属性的规则明细得到所述规则。
8.根据权利要求7所述的数据权限控制装置,其特征在于,所述规则明细的类型包括 普通属性、参照关联属性、用户及系统上下文属性;所述规则设置模块为普通属性的规则明细生成第一 SQL脚本,为参照关联属性的规 则明细生成第二 SQL脚本和数据检测脚本,为用户及系统上下文属性的规则明细生成第三 SQL脚本,根据所有的第一 SQL脚本、所有的第二 SQL脚本、所有的第三SQL脚本得到所述规 则的SQL脚本,根据所有的数据检测脚本得到所述规则的数据检测脚本;所述符合规则数据模块取得所述指定实体的符合所述规则的数据检测脚本的数据,作 为所述符合规则数据;所述数据查询模块供所述用户根据所述规则的SQL脚本对所述规则数据进行查询。
9.根据权利要求6至8中任一项所述的数据权限控制装置,其特征在于,还包括数据维护模块,在增加或修改实体的数据时,通知所述符合规则数据模块取得所述实 体的符合规则数据并持久化;在删除所述实体的数据时,通知所述符合规则数据模块删除所述实体的已持久化的符 合规则数据。
10.根据权利要求9所述的数据权限控制装置,其特征在于,还包括 关联数据维护模块,在所述实体的参照关联属性规则明细的关联实体进行数据增加、 修改或删除时,通知所述符合规则数据模块重新取得所述实体的符合规则数据并持久化。
全文摘要
本发明提供一种数据权限控制方法,包括步骤102,为指定实体设置规则,并将所述规则持久化;步骤104,根据所述规则,取得所述指定实体的符合规则数据并持久化;步骤106,在用户查询所述指定实体的数据时,提供所述符合规则数据以供所述用户查询。本发明还提供了一种数据权限控制装置。通过本发明的技术方案,可以实现一种数据权限控制方法和装置,能够使用户在进行基于数据权限判断的查询时,提高用户的查询效率,同时简化用户的操作。
文档编号G06F17/30GK101944127SQ201010292019
公开日2011年1月12日 申请日期2010年9月26日 优先权日2010年9月26日
发明者王继伟 申请人:用友软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1