一种基于ORM框架的数据权限隔离方法与流程

文档序号:31763994发布日期:2022-10-12 03:49阅读:386来源:国知局
一种基于ORM框架的数据权限隔离方法与流程
一种基于orm框架的数据权限隔离方法
技术领域
1.本发明公开一种方法,涉及数据安全技术领域,具体地说是一种基于orm框架的数据权限隔离方法。


背景技术:

2.在业务平台建设中,通常需要考虑各项权限的管控和隔离,例如页面权限、接口权限、数据权限等,在通用的rbac权限模型中,对于页面权限和接口权限具有通用较好的支持,但是对于数据权限,例如对于某种数据,只有数据拥有者才能查看,或者与数据拥有者同部门的人员才能查看等场景,此场景实现过程通常使用硬编码方式,但修改硬编码较为复杂,且不够友好,又涉及重新编码、测试、发布等整个流程,费事费力。


技术实现要素:

3.本发明针对现有技术的问题,提供一种基于orm框架的数据权限隔离方法,具有通用性强、实施简便等特点,具有广阔的应用前景。
4.本发明提出的具体方案是:
5.本发明提供一种基于orm框架的数据权限隔离方法,基于java的数据库持久层框架,配置用户的数据权限,通过orm框架在映射类中使用自定义注解标记数据拥有方字段,
6.通过orm框架自定义拦截器根据用户的数据查询请求,获取用户的数据权限及数据主表的数据拥有方字段,修改所述用户的数据权限和数据拥有方字段对应的数据库需要执行的sql语句,执行修改后sql语句,完成数据权限控制。
7.进一步,所述的一种基于orm框架的数据权限隔离方法中基于mybatis,配置用户的数据权限,通过orm框架在映射类中使用自定义注解标记数据拥有方字段,
8.通过orm框架自定义拦截器根据用户的数据查询请求,获取用户的数据权限及数据主表的数据拥有方字段,修改所述用户的数据权限和数据拥有方字段对应的数据库需要执行的sql语句,执行修改后sql语句,完成数据权限控制。
9.进一步,所述的一种基于orm框架的数据权限隔离方法中根据用户的数据查询请求,通过mybatis组装并输出数据库需要执行的sql语句,通过自定义拦截器根据所述用户的数据查询请求获取用户的数据权限及数据主表的数据拥有方字段,修改所述的数据库需要执行的sql语句。
10.进一步,所述的一种基于orm框架的数据权限隔离方法中所述修改所述用户的数据权限和数据拥有方字段对应的数据库需要执行的sql语句,包括:
11.增加where条件筛选输出的sql语句。
12.本发明还提供一种基于orm框架的数据权限隔离系统,包括持久层模块和映射模块,
13.持久层模块基于java的数据库持久层框架,配置用户的数据权限,映射模块通过orm框架在映射类中使用自定义注解标记数据拥有方字段,
14.映射模块通过orm框架自定义拦截器根据用户的数据查询请求,获取用户的数据权限及数据主表的数据拥有方字段,修改所述用户的数据权限和数据拥有方字段对应的数据库需要执行的sql语句,执行修改后sql语句,完成数据权限控制。
15.进一步,所述的一种基于orm框架的数据权限隔离系统中持久层模块基于mybatis,配置用户的数据权限,映射模块通过orm框架在映射类中使用自定义注解标记数据拥有方字段,
16.映射模块通过orm框架自定义拦截器根据用户的数据查询请求,获取用户的数据权限及数据主表的数据拥有方字段,修改所述用户的数据权限和数据拥有方字段对应的数据库需要执行的sql语句,执行修改后sql语句,完成数据权限控制。
17.进一步,所述的一种基于orm框架的数据权限隔离系统中持久层模块根据用户的数据查询请求,通过mybatis组装并输出数据库需要执行的sql语句,映射模块通过自定义拦截器根据所述用户的数据查询请求获取用户的数据权限及数据主表的数据拥有方字段,修改所述的数据库需要执行的sql语句。
18.进一步,所述的一种基于orm框架的数据权限隔离系统中所述映射模块修改所述用户的数据权限和数据拥有方字段对应的数据库需要执行的sql语句,包括:
19.增加where条件筛选输出的sql语句。
20.本发明的有益之处是:
21.本发明提供一种基于orm框架的数据权限隔离方法,基于orm框架实现通用业务场景下的数据权限隔离,可实现不侵入业务代码和硬编码来对数据权限的管控,可通过配置的方式改变用户的数据权限,并通过拦截器实时生效,修改执行sql语句,提高了编码和实现业务的效率,降低了业务编码实现的成本。
附图说明
22.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
23.图1是现有技术数据权限隔离流程示意图。
24.图2是本发明数据权限隔离流程示意图。
25.图3是本发明方法应用示意图。
具体实施方式
26.下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
27.本发明提供一种基于orm框架的数据权限隔离方法,基于java的数据库持久层框架,配置用户的数据权限,通过orm框架在映射类中使用自定义注解标记数据拥有方字段,
28.通过orm框架自定义拦截器根据用户的数据查询请求,获取用户的数据权限及数据主表的数据拥有方字段,修改所述用户的数据权限和数据拥有方字段对应的数据库需要执行的sql语句,执行修改后sql语句,完成数据权限控制。
where createuser=a;”,并进行执行返回结果。
42.经过上述流程,即可实现不侵入业务代码和硬编码来实现对数据权限的管控,且如果需要修改用户的数据权限,可通过配置的方式改变,本配置可在拦截器中实时生效。如果需要增加其他数据权限类型可按照上述方式扩展,原理相同。
43.上述以mybatis为例实现了一个具体的数据权限管理模型,其余orm框架实现原理相同。
44.本发明还提供一种基于orm框架的数据权限隔离系统,包括持久层模块和映射模块,
45.持久层模块基于java的数据库持久层框架,配置用户的数据权限,映射模块通过orm框架在映射类中使用自定义注解标记数据拥有方字段,
46.映射模块通过orm框架自定义拦截器根据用户的数据查询请求,获取用户的数据权限及数据主表的数据拥有方字段,修改所述用户的数据权限和数据拥有方字段对应的数据库需要执行的sql语句,执行修改后sql语句,完成数据权限控制。
47.上述系统内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
48.同样地,本发明系统基于orm框架实现通用业务场景下的数据权限隔离,可实现不侵入业务代码和硬编码来对数据权限的管控,可通过配置的方式改变用户的数据权限,并通过拦截器实时生效,修改执行sql语句,提高了编码和实现业务的效率,降低了业务编码实现的成本。
49.需要说明的是,上述各流程和各系统结构中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
50.以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1