一种基于动态数据源的项目数据安全访问方法技术

技术编号:34555063 阅读:15 留言:0更新日期:2022-08-17 12:40
本申请属于数据处理技术领域,涉及一种基于动态数据源的项目数据安全访问方法。该方法包括:步骤S1、监听前端系统向后端服务器发送的请求;步骤S2、根据所述请求确定目标数据源;步骤S3、将需要切换的目标数据源以后端服务器可以识别的项目参数的形式添加到被拦截的请求路径中;步骤S4、由后端服务器提取出请求附带的项目参数,若所述项目参数为空,则由后端服务器切换到默认数据库,否则,根据所述项目参数选择对应的数据库连接池,所述数据库连接池为由所述默认数据库中各数据源信息实例化形成的,且保存在后端服务器缓存中,不同数据源信息对应于不同的访问权限。本申请在保证项目间数据知悉范围得到有效控制的条件下,提高了数据访问效率。了数据访问效率。了数据访问效率。

【技术实现步骤摘要】
一种基于动态数据源的项目数据安全访问方法


[0001]本申请属于数据处理
,特别涉及一种基于动态数据源的项目数据安全访问方法。

技术介绍

[0002]数据管理系统普遍应用于企业产品研发和运营管理数据存储与管控,飞机主机研发单位与成品配套单位之间往往需要基于数据管理系统开展协同研制,在这种跨单位成品协同研制过程中需要严格控制项目间数据知悉范围,为保证不同项目间的数据知悉范围得到有效控制,需要对用户数据访问权限和范围进行严格隔离。当数据管理系统中积累的数据量不断增加时,在保证数据访问范围得到严格控制的条件下,将持续增加系统数据处理负担,造成数据访问效率降低。
[0003]在以往解决方案中,为了实现上述的需求,有如下两种方式:
[0004]第一种是在数据库的每张表里添加项目字段做区分。保存数据时,将项目信息记录在业务数据表的项目字段中,然后通过请求的参数进行数据过滤。第二种则是一个项目对应一套项目专用的数据库。采用这种方式时,不同项目的数据存放到不同的数据库中。
[0005]第一种方式能够在增加新的项目数据时,仅需要对项目权限进行配置,开发成本低,维护工作比较便利。但业务数据都存在同一个数据库下,随着业务数据的增多,会大大降低数据库的性能。其次需要对权限进行严格配置,代码中也必须特别注意对项目字段的过滤。第二种方式涉及的数据库性能得到释放,数据隔离的效果更理想,更安全。但缺点在于增加新的项目时需要搭建新的服务器数据库环境,实施运维成本变高。如果以后对系统配置或者数据表结构进行更改,需要维护每一台服务器,维护工作变得复杂,新项目的上线周期增加。

技术实现思路

[0006]为了解决上述问题,本申请提供了一种基于动态数据源的项目数据安全访问方法,能够做到在不影响性能的条件下,提高系统的安全保密级别,减少日后的维护工作,同时能够在不增加服务器的情况下动态的添加新的项目。
[0007]本申请提供的基于动态数据源的项目数据安全访问方法,主要包括:
[0008]步骤S1、监听前端系统向后端服务器发送的请求;
[0009]步骤S2、根据所述请求确定目标数据源;
[0010]步骤S3、将需要切换的目标数据源以后端服务器可以识别的项目参数的形式添加到被拦截的请求路径中;
[0011]步骤S4、由后端服务器提取出请求附带的项目参数,若所述项目参数为空,则由后端服务器切换到默认数据库,否则,根据所述项目参数选择对应的数据库连接池,其中,所述默认数据库存储有所有数据源信息,所述数据库连接池为由所述默认数据库中各数据源信息实例化形成的,且保存在后端服务器缓存中,不同数据源信息对应于不同的访问权限。
[0012]优选的是,步骤S2中,根据所述请求确定目标数据源包括:
[0013]获取用户在所述前端系统中输入的项目数据,并将所述项目数据放入前端项目参数缓存中;
[0014]将前端项目参数缓存中的项目数据作为所述请求携带的目标数据源。
[0015]优选的是,步骤S2中,根据所述请求确定目标数据源包括:
[0016]确定所述请求对应的业务所处的特定数据库;
[0017]将所述特定数据库对应的项目数据作为所述请求携带的目标数据源。
[0018]优选的是,步骤S2中,根据所述请求确定目标数据源包括:
[0019]确定所述请求对应的路径所指向的数据;
[0020]当所述数据为非特定数据库数据,则将默认数据库对应的项目数据作为所述请求携带的目标数据源。
[0021]优选的是,步骤S2中,根据所述请求确定目标数据源包括:
[0022]确定所述请求对应的功能涉及多个项目,则将目标数据源置为空。
[0023]优选的是,步骤S4之前,进一步包括:
[0024]由后端服务器在启动时,查询主数据库获取所有数据源信息;
[0025]通过dynamic

datasource框架自带的提供者方法,使查询到的数据源信息实例化成数据库连接池并保存到缓存中等待使用。
[0026]优选的是,步骤S4中,由后端服务器的拦截器监听前端系统发送来的请求。
[0027]优选的是,步骤S4中,根据所述项目参数选择对应的数据库连接池包括:通过Mybatis

plus框架提供的DS注解解析所述项目参数,将所述项目参数转换为数据库连接池能够识别的方式,并匹配与之对应的数据库连接池。
[0028]本申请基于现有的动态数据源技术,通过对应用系统的前后端做相应处理来实现以上需求。基于数据库底层分离的数据源实现数据访问权限和范围的动态切换,在保证项目间数据知悉范围得到有效控制的条件下,提高了数据访问效率。
附图说明
[0029]图1是本申请基于动态数据源的项目数据安全访问方法的一优选实施例的流程图。
[0030]图2是本申请图1所示实施例的数据库启动流程图。
[0031]图3是本申请图1所示实施例的数据库维护示意图。
[0032]图4是本申请图1所示实施例的数据库与前台数据交互架构示意图。
[0033]图5是现有技术中的数据库与前台数据交互架构示意图。
具体实施方式
[0034]为使本申请实施的目的、技术方案和优点更加清楚,下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施方式是本申请一部分实施方式,而不是全部的实施方式。下面通过参考附图描述的实施方式是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。基于本申请中的实施方式,
本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本申请保护的范围。下面结合附图对本申请的实施方式进行详细说明。
[0035]本申请提供了一种基于动态数据源的项目数据安全访问方法,如图1所示,主要包括:
[0036]步骤S1、监听前端系统向后端服务器发送的请求;
[0037]步骤S2、根据所述请求确定目标数据源;
[0038]步骤S3、将需要切换的目标数据源以后端服务器可以识别的项目参数的形式添加到被拦截的请求路径中;
[0039]步骤S4、由后端服务器提取出请求附带的项目参数,若所述项目参数为空,则由后端服务器切换到默认数据库,否则,根据所述项目参数选择对应的数据库连接池,其中,所述默认数据库存储有所有数据源信息,所述数据库连接池为由所述默认数据库中各数据源信息实例化形成的,且保存在后端服务器缓存中,不同数据源信息对应于不同的访问权限。
[0040]本申请在前端系统上,对向后台发送的请求进行监听,当前端系统向后台系统发送请求时,前端系统会自动拦截到该请求,并将需要切换的目标数据源以后端系统可以识别的参数形式添加到被拦截的请求路径中,并将转发给后端进行处理。
[0041]在后端服务器本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于动态数据源的项目数据安全访问方法,其特征在于,包括:步骤S1、监听前端系统向后端服务器发送的请求;步骤S2、根据所述请求确定目标数据源;步骤S3、将需要切换的目标数据源以后端服务器可以识别的项目参数的形式添加到被拦截的请求路径中;步骤S4、由后端服务器提取出请求附带的项目参数,若所述项目参数为空,则由后端服务器切换到默认数据库,否则,根据所述项目参数选择对应的数据库连接池,其中,所述默认数据库存储有所有数据源信息,所述数据库连接池为由所述默认数据库中各数据源信息实例化形成的,且保存在后端服务器缓存中,不同数据源信息对应于不同的访问权限。2.如权利要求1所述的基于动态数据源的项目数据安全访问方法,其特征在于,步骤S2中,根据所述请求确定目标数据源包括:获取用户在所述前端系统中输入的项目数据,并将所述项目数据放入前端项目参数缓存中;将前端项目参数缓存中的项目数据作为所述请求携带的目标数据源。3.如权利要求1所述的基于动态数据源的项目数据安全访问方法,其特征在于,步骤S2中,根据所述请求确定目标数据源包括:确定所述请求对应的业务所处的特定数据库;将所述特定数据库对应的项目数据作为所述请求携带的目标数据源。4.如权利要求1所述的基于动态数据源的项目数据安全访问方法,其特征在...

【专利技术属性】
技术研发人员:王帅王鸿庆魏星
申请(专利权)人:中国航空工业集团公司沈阳飞机设计研究所
类型:发明
国别省市:

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

1