一种数据隔离方法及系统与流程

文档序号:32902933发布日期:2023-01-13 02:07阅读:92来源:国知局
一种数据隔离方法及系统与流程

1.本发明涉及数据隔离技术领域,特别是涉及一种数据隔离方法及系统。


背景技术:

2.所谓数据隔离,是指不同用户在相同的软件页面下,所操作的数据会根据自己的所属单位、部门、职位甚至是个人来区分,目前现有技术中多数都是做到租户隔离和用户隔离,无法实现更细粒度的数据隔离。


技术实现要素:

3.本发明的目的是提供一种数据隔离方法及系统,可以实现更细粒度的数据隔离,以满足不同的业务需要。
4.为实现上述目的,本发明提供了如下方案:
5.一种数据隔离方法,包括:
6.获取软件中待添加数据隔离需求的页面和所述页面的功能;
7.根据所述页面的功能确定所述页面的功能对应的隔离级别、api接口和数据库表;所述隔离级别包括5个等级;
8.根据所述页面的功能对应的隔离级别对所述页面的功能对应的api接口和数据库表进行处理实现所述页面的数据隔离。
9.可选的,所述隔离级别包括:租户级别、用户级别、组织级别、角色级别以及管理员级别。
10.可选的,所述根据所述页面的功能对应的隔离级别对所述页面的功能对应的api接口和数据库表进行处理实现所述页面的数据隔离,具体包括:
11.根据所述页面的功能对应的隔离级别,将所述页面的业务id分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离。
12.可选的,所述根据所述页面的功能对应的隔离级别,将所述页面的业务id分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离,具体包括:
13.若所述页面的功能对应的隔离级别为租户级别,则将所述页面的业务id以租户id类型分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离;
14.若所述页面的功能对应的隔离级别为用户级别,则将所述页面的业务id以用户id类型分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离;
15.若所述页面的功能对应的隔离级别为组织级别,则将所述页面的业务id以组织id类型分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离;
16.若所述页面的功能对应的隔离级别为角色级别,则将所述页面的业务id以角色id类型分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离;
17.若所述页面的功能对应的隔离级别为管理员级别,则将所述页面的业务id以管理员id类型分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔
离。
18.一种数据隔离系统,包括:
19.获取模块,用于获取软件中待添加数据隔离需求的页面和所述页面的功能;
20.参数确定模块,用于根据所述页面的功能确定所述页面的功能对应的隔离级别、api接口和数据库表;所述隔离级别包括5个等级;
21.隔离模块,用于根据所述页面的功能对应的隔离级别对所述页面的功能对应的api接口和数据库表进行处理实现所述页面的数据隔离。
22.可选的,所述隔离级别包括:租户级别、用户级别、组织级别、角色级别以及管理员级别。
23.可选的,所述隔离模块,具体包括:
24.隔离单元,用于根据所述页面的功能对应的隔离级别,将所述页面的业务id分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离。
25.可选的,所述隔离单元,具体包括:
26.租户隔离子单元,用于若所述页面的功能对应的隔离级别为租户级别,则将所述页面的业务id以租户id类型分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离;
27.用户隔离子单元,用于若所述页面的功能对应的隔离级别为用户级别,则将所述页面的业务id以用户id类型分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离;
28.组织隔离子单元,用于若所述页面的功能对应的隔离级别为组织级别,则将所述页面的业务id以组织id类型分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离;
29.角色隔离子单元,用于若所述页面的功能对应的隔离级别为角色级别,则将所述页面的业务id以角色id类型分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离;
30.管理员隔离子单元,用于若所述页面的功能对应的隔离级别为管理员级别,则将所述页面的业务id以管理员id类型分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离。
31.根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明根据页面的功能确定页面的功能对应的隔离级别、api接口和数据库表;隔离级别包括5个等级,根据页面的功能对应的隔离级别对页面的功能对应的api接口和数据库表进行处理实现页面的数据隔离,可以确定多种隔离级别,实现更细粒度的数据隔离,以满足不同的业务需要。
附图说明
32.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
33.图1为本发明实施例提供的一种数据隔离方法的流程图;
34.图2为接入了本发明实施例提供的数据隔离方法后的软件,大致的系统流程。
具体实施方式
35.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
36.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
37.如图1所示,本发明实施例提供的数据隔离方法,包括:
38.步骤101:获取软件中待添加数据隔离需求的页面和所述页面的功能。
39.步骤102:根据所述页面的功能确定所述页面的功能对应的隔离级别、api接口和数据库表;所述隔离级别包括5个等级。
40.步骤103:根据所述页面的功能对应的隔离级别对所述页面的功能对应的api接口和数据库表进行处理实现所述页面的数据隔离。
41.在实际应用中,所述隔离级别包括:租户级别、用户级别、组织级别、角色级别以及管理员级别。
42.在实际应用中,所述根据所述页面的功能对应的隔离级别对所述页面的功能对应的api接口和数据库表进行处理实现所述页面的数据隔离,具体包括:
43.根据所述页面的功能对应的隔离级别,将所述页面的业务id分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离。
44.在实际应用中,所述根据所述页面的功能对应的隔离级别,将所述页面的业务id分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离,具体包括:
45.若所述页面的功能对应的隔离级别为租户级别,则将所述页面的业务id以租户id类型分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离。
46.若所述页面的功能对应的隔离级别为用户级别,则将所述页面的业务id以用户id类型分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离。
47.若所述页面的功能对应的隔离级别为组织级别,则将所述页面的业务id以组织id类型分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离。
48.若所述页面的功能对应的隔离级别为角色级别,则将所述页面的业务id以角色id类型分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离。
49.若所述页面的功能对应的隔离级别为管理员级别,则将所述页面的业务id以管理员id类型分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离。
50.本发明实施例还提供了一种针对上述方法的数据隔离系统,包括:
51.获取模块,用于获取软件中待添加数据隔离需求的页面和所述页面的功能。
52.参数确定模块,用于根据所述页面的功能确定所述页面的功能对应的隔离级别、api接口和数据库表;所述隔离级别包括5个等级。
53.隔离模块,用于根据所述页面的功能对应的隔离级别对所述页面的功能对应的api接口和数据库表进行处理实现所述页面的数据隔离。
54.在实际应用中,所述隔离级别包括:租户级别、用户级别、组织级别、角色级别以及管理员级别;以下分别介绍5级数据隔离:
55.租户级别:该隔离级别区分的是在相同的软件页面下,使用软件的不同公司或者单位,他们之间的数据不会互相影响。设计该隔离级别的方法需要在响应的api接口上增加租户id字段,并且在对应的表结构上增加租户id列。
56.用户级别:该隔离级别区分的是在相同的软件页面下,使用软件的用户之间的数据不会互相影响。设计该隔离级别的方法需要在响应的api接口上增加用户id字段,并且在对应的表结构上增加用户id列。
57.组织级别:该隔离级别区分的是在相同的软件页面下,使用软件的不同组织机构或者部门之间的数据不会互相影响。设计该隔离级别的方法需要在响应的api接口上增加组织id字段,并且在对应的表结构上增加组织id列。
58.角色级别:该隔离级别区分的是在相同的软件页面下,使用软件不同职位或者不同角色的用户之间的数据不会互相影响。设计该隔离级别的方法需要在响应的api接口上增加角色id数组字段,并且在对应的表结构上增加角色id组合列。
59.管理员级别:该隔离级别较为特殊,是游离于上述4个级别的特殊情况,软件管理员需要访问所有数据,不被以上数据隔离条件所约束,故设计此隔离级别最佳的实现方式是额外增加管理员页面和api,同时在访问数据表的时候不带上数据隔离条件即可即执行数据库脚本的时候,查询条件不要包含数据隔离的条件。
60.需要额外说明的是,一二三四这四个隔离级别即租户级别、用户级别、组织级别、角色级别,他们的关系一般是层层递进的,举例说明,如果想要实现组织级别的隔离,那同时也要实现租户级别和用户级别。
61.租户级别、用户级别、组织级别通常和数据本身是一对一的关系,即某一条数据只能属于某个租户,或者某个用户,不能同时属于多个租户或者多个用户;而角色级别和数据的关系可以是一对多的,即某一条数据可以被不同角色/职位的用户来操作,比如业务员角色的用户所操作的数据,他的上级领导业务主管角色的用户也可以进行查看。
62.在实际应用中,所述隔离模块,具体包括:
63.隔离单元,用于根据所述页面的功能对应的隔离级别,将所述页面的业务id分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离。
64.在实际应用中,所述隔离单元,具体包括:
65.租户隔离子单元,用于若所述页面的功能对应的隔离级别为租户级别,则将所述页面的业务id以租户id类型分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离。
66.用户隔离子单元,用于若所述页面的功能对应的隔离级别为用户级别,则将所述页面的业务id以用户id类型分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离。
67.组织隔离子单元,用于若所述页面的功能对应的隔离级别为组织级别,则将所述页面的业务id以组织id类型分别添加到所述页面的功能对应的api接口和数据库表中实现
所述页面的数据隔离。
68.角色隔离子单元,用于若所述页面的功能对应的隔离级别为角色级别,则将所述页面的业务id以角色id类型分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离。
69.管理员隔离子单元,用于若所述页面的功能对应的隔离级别为管理员级别,则将所述页面的业务id以管理员id类型分别添加到所述页面的功能对应的api接口和数据库表中实现所述页面的数据隔离。
70.本发明还提供了一种更加具体的实施例来对上述数据隔离方法进行描述:
71.步骤1:整理整个软件中所有需要添加数据隔离需求的功能和页面(功能和页面是引入数据隔离的软件本身的功能和页面,比如财务系统、商城系统、仓库管理系统等等)
72.步骤2:对于不同业务场景即不同页面,所需的隔离级别会有所不同,根据类型列出详细清单(例如:对于仓库管理系统,用户登入进去之后会有一个仓库列表、商品列表、人员管理和库存清单等页面,针对上面所说的4个页面,要做不同程度的数据隔离,那就将这4个页面一一对应上隔离级别。仓库列表——租户级别,商品列表——租户级别,人员管理——组织级别,库存清单——角色级别)。
73.步骤3:清单中所涉及的页面与业务功能,在软件中也找出涉及到的api接口和数据库表。
74.步骤4:根据清单中的页面与业务功能逐一进行开发测试,比如仓库管理系统的商品页面要做权限隔离,隔离级别为租户级别,那么对于商品页面功能的api中就需要增加租户id,商品的数据库表中也需要增加租户id。
75.接入本发明实施例提供的数据隔离方法后的软件,数据查询流程步骤如图2所示,
76.步骤2.0:系统收到客户端发来的http请求
77.步骤2.1:当请求携带数据隔离参数时,系统根据携带的参数作为sql条件组合到业务sql语句中。
78.步骤2.2:将步骤2.1中组合后的sql通过数据库查询。
79.步骤2.3:将数据库查询结果返回给系统,返回的数据即为带数据隔离条件的数据。
80.步骤3.1:当请求不细带数据隔离参数时,系统直接执行相应业务sql语句。
81.步骤3.2:将数据库查询结果返回给系统,返回的数据即为不带数据隔离条件的数据即普通数据。
82.本发明实施例有以下技术效果:
83.本发明实施例提供的数据隔离方法可以应对尚未开发,以及已经开发完成的软件,对于尚未开发的软件,只需要在设计的时候把上述隔离方法的条件一起加入进去,而对于已经开发完成的软件,并且需要以最小代价来增加数据隔离需求的,也很适合使用该数据隔离方法,5种隔离级别实现的步骤是一样的,只是在增加的字段类型和数量上有不同。
84.在使用了该方法的软件可以达到数据隔离目的,但是流程不会变得更加复杂,只需要在原有的软件逻辑判断中,额外增加一些判断条件,根据数据隔离级别的程度,判断条件有一些不同之处,使系统能根据条件做数据隔离,但又能充分节约开发成本资源、服务器资源以及数据库资源。
85.通过api接口和数据库表字段来实现,适用于不增加表数量而只增加表中的列数来完成数据隔离的场景,该方法总共分为来5级,每一级都对应了不同的数据隔离程度,来满足不同的应用方案。
86.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
87.本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1