一种数据访问权限控制方法

文档序号:6622207阅读:1400来源:国知局
一种数据访问权限控制方法
【专利摘要】本发明公开了一种数据访问权限控制方法,属于数据权限控制领域。该方法包括以下步骤:a)建立数据模型;b)建立数据类型之间的继承体系;c)建立用户模型;d)创建数据访问权限领域专用语言;e)定义数据访问权限;f)建立数据访问代理;g)进行权限判断;h)将结果通过数据访问代理返回给用户。与现有技术相比,本发明控制方法的特点是数据访问权限与业务逻辑分离,使用代理方式实现,对开发者透明,易用、可扩展、可移植,具有很好的推广应用价值。
【专利说明】一种数据访问权限控制方法
[0001]

【技术领域】
[0002] 本发明涉及一种数据的访问控制方法,具体地说是一种数据访问权限控制方法。

【背景技术】
[0003] 现代软件系统中用户趋于多样化,业务逻辑复杂,对数据安全及保密的要求越来 越高。不同的用户访问不同的类型数据;对于同一种数据,某些用户可以访问其中一部分, 或者某些用户只能够访问数据的某些属性。系统为了满足上述的数据访问需求,往往把数 据访问控制逻辑和业务逻辑混编在一起,造成逻辑不清晰,维护繁琐、困难,并且工作量较 大。
[0004] 现有技术中的数据访问控制方法通常存在以下不足:(一)数据模型抽象度不够: 大多以关系数据库为基础,依托数据库表实现,使用复杂、繁琐,不易扩展。在传统的关系数 据库中同类数据可能存储于不同的数据表中,这样在定义数据访问权限控制时需要在不同 的表上定义相同的数据访问权限控制,修改、维护时亦很繁琐,需要改动多处。(二)权限上 下文模型的抽象度不够:大多建立几个固定的数据模型,如用户、部门,造成数据访问控制 需求发生变化时,修改和扩展困难。(三)依赖数据的存储方式和数据库产品,当数据存储方 式或数据库变化时,原来定义的数据访问权限控制或方法将不能使用或需要进行修改。


【发明内容】

[0005] 本发明的技术任务是针对上述现有技术的不足,提供一种易用的、可扩展的、可移 植的、与业务逻辑分离,对开发者透明的数据访问权限控制方法。
[0006] 本发明的技术任务是按以下方式实现的:一种数据访问权限控制方法,其特点是 数据访问权限与业务逻辑分离,使用代理方式实现,对开发者透明。
[0007] 上述方法具体包括以下步骤: a) 建立数据模型 把数据抽象为数据类型和数据对象,所述数据类型描述具有相同属性的数据的集合; 数据对象是数据类型的一个实例,或者数据库中的一条记录; b) 建立数据类型之间的继承体系 首先建立根类型,所有数据类型都直接或间接继承根类型,然后数据类型之间根据性 质不同建立继承关系; c) 建立用户模型 所述用户模型用于描述及限定用户范围; d) 创建数据访问权限领域专用语言; e) 定义数据访问权限 使用步骤d中数据访问权限领域专用语言结合步骤a、步骤b中建立的数据模型及步骤 C中建立的用户模型描述具体的数据访问权限,并将其持久化; f) 建立数据访问代理 使用代理模式封装原有的数据访问组件,提供和原有数据访问组件完全一样的接口及 功能,用户对数据的所有访问请求都经过该数据访问代理,数据访问代理可对所有数据访 问请求进行拦截、监控及修改; g) 进行权限判断 在数据被用户访问时,数据访问代理首先判断被访问的数据的类型;确定类型后查找 此类型上的定义的数据访问权限,若此类型上没有定义数据访问权限,则继续查找其父类 型上是否定义了数据访问权限,直至查询到跟类型,若没有定义数据访问权限则执行原有 逻辑;若定义了数据访问权限,则使用数据访问权限领域专用语言解析权限,增加数据访问 过滤或判断用户是否有权限访问此数据; h) 将结果通过数据访问代理返回给用户。
[0008] 为了便于实现扩展,对不同的数据库类型或者数据访问方式,可实现不同的数据 访问代理。
[0009] 步骤a中,系统中的数据类型为数据库表、对象实体类型、或虚拟类型(抽象的数 据集合)。
[0010] 步骤b中,根类型的基本属性包括唯一标识、名称、代码和描述。
[0011] 步骤c中,所述用户模型包括用户、角色、用户所属组织和与用户相关的能够影响 用户访问数据的相关对象。
[0012] 步骤d中,使用步骤c中建立的用户模型,结合a、b中建立的数据模型及运算符组 成数据访问权限领域专用语言的表达式语言。
[0013] 步骤e中定义数据访问控制权限时可以在类型的父类型上定义,并可控制子类型 是否能够使用父类型上设置的权限。
[0014] 本发明的数据访问权限控制方法与现有技术相比具有以下突出的有益效果: (一) 把数据抽象为数据类型和数据对象,并引入虚拟类型的概念,建立类型继承体系, 因此可以把众多类型的数据归纳到一个虚拟的父类型上,若这些类型上需要定义相同的数 据访问控制权限,只需要在它们的虚拟父类型上定义即可; (二) 进一步可以在数据抽象模型之上建立数据对象管理,从而控制单个对象的数据访 问; (三) 统一的用户模型内置了常用的对象和属性,开箱即用,并可以灵活、方便的扩展, 并且不影响原有模型及功能; (四) 数据访问权限领域专用语言简化了数据访问控制权限的定义,开发人员或实施人 员经过短时培训即可熟练使用; (五) 使用数据访问代理实现数据访问控制权限,使开发人员在开发时只需要关心核心 业务逻辑,提高了软件系统的质量,为软件的可维护性提供了基础; (六) 根据不同的数据库和不同的数据访问方式有相应的数据访问代理实现,这些代理 使得数据访问权限可在不同的数据之间、关系数据库及非关系数据库之间移植;并且对于 新出现的数据库可方便的实现扩展。

【专利附图】

【附图说明】
[0015] 附图1是本发明方法中数据访问控制权限上下文结构框图; 附图2是本发明方法中数据权限定义示意图; 附图3是本发明方法中数据访问控制权限的执行流程图。

【具体实施方式】
[0016] 参照说明书附图以具体实施例对本发明的数据访问权限控制方法作以下详细地 说明。
[0017] 实施例: 本发明的数据访问权限控制方法包括以下步骤: a) 建立数据模型 把数据抽象为数据类型和数据对象。所述数据类型是描述具有相同属性的数据的集 合。系统中的数据类型可能为数据库表或者对象实体类型,或者可以为虚拟类型(抽象的数 据集合); 数据对象是类型的一个实例,或者数据库中的一条记录; b) 建立数据类型之间的继承体系 首先建立根类型,所有数据类型都直接或间接继承根类型;数据类型之间根据性质不 同也建立继承关系; c) 建立用户模型 如附图1所示,用户模型用于描述及限定用户范围,包括用户、角色、用户所属组织和 与用户相关的能够影响用户访问数据的相关对象; d) 创建数据访问权限领域专用语言 使用步骤c中建立的用户模型,结合a、b中建立的数据模型,实现诸如"用户.角色", "用户.机构","组织.上级组织",结合运算符组成表达式语言; e) 定义数据访问权限 如附图2所示,使用数据访问权限领域专用语言描述具体的数据访问权限,即那些用 户能够访问哪些数据,并将其持久化; f) 建立数据访问代理 使用代理模式封装原有的数据访问组件,提供和原有数据访问组件完全一样的接口及 功能,用户对数据的所有访问请求都经过该数据访问代理,数据访问代理可对所有数据访 问请求进行拦截、监控及修改; g) 进行权限判断 如附图3所示,在数据被用户访问时,数据访问代理首先判断被访问的数据的类型;确 定类型后查找此类型上的定义的数据访问权限,若此类型上没有定义数据访问权限,则继 续查找其父类型上是否定义了数据访问权限,直至查询到跟类型,若没有定义数据访问权 限则执行原有逻辑;若定义了数据访问权限,则使用数据访问控制领域专用语言解析权限, 增加数据访问过滤或判断用户是否有权限访问此数据; h) 将结果通过数据访问代理返回给用户。
【权利要求】
1. 一种数据访问权限控制方法,其特征在于:数据访问权限与业务逻辑分离,使用代 理方式实现,对开发者透明,具体包括以下步骤 : a) 建立数据模型 把数据抽象为数据类型和数据对象,所述数据类型描述具有相同属性的数据的集合; 数据对象是数据类型的一个实例,或者数据库中的一条记录; b) 建立数据类型之间的继承体系 首先建立根类型,所有数据类型都直接或间接继承根类型,然后数据类型之间根据性 质不同建立继承关系; c) 建立用户模型 所述用户模型用于描述及限定用户范围; d) 创建数据访问权限领域专用语言; e) 定义数据访问权限 使用步骤d中数据访问权限领域专用语言结合步骤a、步骤b中建立的数据模型及步骤 c中建立的用户模型描述具体的数据访问权限,并将其持久化; f) 建立数据访问代理 使用代理模式封装原有的数据访问组件,提供和原有数据访问组件完全一样的接口及 功能,用户对数据的所有访问请求都经过该数据访问代理,数据访问代理可对所有数据访 问请求进行拦截、监控及修改; g) 进行权限判断 在数据被用户访问时,数据访问代理首先判断被访问的数据的类型;确定类型后查找 此类型上的定义的数据访问权限,若此类型上没有定义数据访问权限,则继续查找其父类 型上是否定义了数据访问权限,直至查询到跟类型,若没有定义数据访问权限则执行原有 逻辑;若定义了数据访问权限,则使用数据访问权限领域专用语言解析权限,增加数据访问 过滤或判断用户是否有权限访问此数据; h) 将结果通过数据访问代理返回给用户。
2. 根据权利要求1所述的数据访问权限控制方法,其特征在于:对不同的数据库类型 或者数据访问方式,实现不同的数据访问代理。
3. 根据权利要求1或2所述的数据访问权限控制方法,其特征在于步骤a中,系统中的 数据类型为数据库表、对象实体类型、或虚拟类型。
4. 根据权利要求1或2所述的数据访问权限控制方法,其特征在于步骤b中,根类型的 基本属性包括唯一标识、名称、代码和描述。
5. 根据权利要求1或2所述的数据访问权限控制方法,其特征在于步骤c中,所述用户 模型包括用户、角色、用户所属组织和与用户相关的能够影响用户访问数据的相关对象。
6. 根据权利要求1或2所述的数据访问权限控制方法,其特征在于步骤d中,使用步 骤c中建立的用户模型,结合a、b中建立的数据模型及运算符组成数据访问权限领域专用 语目的表达式语目。
7. 根据权利要求1或2所述的数据访问权限控制方法,其特征在于,步骤e中定义数据 访问控制权限时可以在类型的父类型上定义,并可控制子类型是否能够使用父类型上设置 的权限。
8. 根据权利要求1或2所述的数据访问权限控制方法,其特征在于可扩展的权限上下 文。
9. 当现有权限上下文中的对象不能满足描述权限的需要时,可对其进行扩展,使用提 供的接口向权限上下文中添加对象。
【文档编号】G06F21/30GK104156640SQ201410375662
【公开日】2014年11月19日 申请日期:2014年8月1日 优先权日:2014年8月1日
【发明者】蔡卫卫, 董玉全, 魏子重 申请人:浪潮软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1