数据库交互方法、系统及可读存储介质

文档序号:7607 发布日期:2021-09-17 浏览:32次 英文

数据库交互方法、系统及可读存储介质

技术领域

本发明涉及车辆

技术领域

,尤其涉及一种数据库交互方法、系统及可读存储介质。

背景技术

数据库系统资源,指的是数据结构来存储和管理数据的计算机软件系统。用户可以对数据库系统的数据进行新增、查询、更新、删除等操作。访问数据库资源通常可以通过JDBC(Java Database Connectivity,Java数据库连接)驱动直接访问。

数据库系统资源若通过JDBC方式,则需要将IP暴露在公网进行发布,导致数据库存在爆破攻击风险以及非法授权访问的问题。

发明内容

本发明的主要目的在于提供一种数据库交互方法、系统及可读存储介质,旨在避免数据库存在爆破攻击风险以及非法授权访问的问题。

为实现上述目的,本发明提供一种数据库交互方法,所述数据库交互方法包括以下步骤:

将所述数据库进行封装,并将所述数据库的接口定义成RESTful API接口;

通过RESTful API接口使用POST方法对所述数据库进行对应的交互操作。

可选地,所述通过RESTful API接口使用POST方法对所述数据库进行对应的交互操作的步骤包括:

在接受到交互操作指令之后,对所述操作指令进行安全验证;

在安全验证通过后,根据所述操作指令对所述数据库进行对应的交互操作。

可选地,所述通过RESTful API接口使用POST方法对所述数据库进行对应的交互操作的步骤包括:

通过RESTful API接口使用POST方法对所述数据库进行对应的新增、查询、更新操作。

可选地,在接受到交互操作指令之后,对所述操作指令进行安全验证的步骤包括:

解析所述操作指令,获得对应的安全令牌信息;

根据所述安全令牌信息进行安全验证。

可选地,所述根据所述安全令牌信息进行安全验证的步骤包括:

采用摘要算法对所述安全令牌信息进行解密,获得对应的解密信息;

根据所述解密信息与预存信息进行对比实现安全验证。

可选地,所述解密信息包括访问端名称、密钥和时间戳信息。

可选地,所述通过RESTful API接口使用POST方法对所述数据库进行对应的交互操作的步骤包括:

通过分页调用方式向访问端返回对应的数据。

可选地,所述数据库交互方法还包括:

在交互操作完成后,将对应的交互操作存入访问日志。

此外,为实现上述目的,本发明还提供一种数据库交互系统,所述数据库交互系统包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的数据库交互方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述数据库交互方法的步骤。

本发明实施例提出的一种数据库交互方法、系统及可读存储介质,通过将所述数据库进行封装,并将所述数据库的接口定义成RESTful API接口;通过RESTful API接口使用POST方法对所述数据库进行对应的交互操作。本发明通过将数据库进行封装,接口则定义成RESTful API接口,统一访问接口(每个资源都有特定的统一资源定位符URI),从而无需直接通过SQL方式访问数据库,避免IP地址暴露问题,进而能够避免数据库爆破攻击风险以及非法授权访问的问题。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的系统结构示意图;

图2为本发明数据库交互方法第一实施例的流程示意图;

图3为本发明数据库交互方法第二实施例的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的系统结构示意图。

本发明应用系统包括公共互联网、周边网络和内网,公共互联网中在包括外部调用API的系统,周边网络包括WEB服务器,内网包括网关服务器、内部调用API的系统、API服务群集、日志存储及系统配置设备、和存储数据库资源的设备。

外部调用API的系统与WEB服务器通信连接,WEB服务器与网关服务器,网关服务器分别与内部调用API的系统、API服务群集、日志存储及系统配置设备通信连接,API服务群集中各个设备相互通信连接,API服务群集还与存储数据库资源的设备通信连接。

外部调用API的系统用于发起交互请求,通过互联网发送交互请求,WEB服务器则将交互请求传输給WEB服务器,再由WEB服务器将交互请求发送到内网中进行数据交互处理。内网中网关服务器则可以用于对交互请求进行安全验证,API服务群集则存在统一资源定位符URI,数据库资源设备中存储数据库资源,每个统一资源定位符URI与数据库资源设备中数据库资源一一对应,内部调用API的系统则根据交互请求进行调用API服务群集。

本领域技术人员可以理解,图1中示出的系统结构并不构成对数据库访问系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

在本实施例中,数据库交互系统包括:存储器、处理器和存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如下操作:

将所述数据库进行封装,并将所述数据库的接口定义成RESTful API接口;

通过RESTful API接口使用POST方法对所述数据库进行对应的交互操作。

进一步地,处理器可以调用存储器中存储的计算机程序,还执行以下操作:

在接受到交互操作指令之后,对所述操作指令进行安全验证;

在安全验证通过后,根据所述操作指令对所述数据库进行对应的交互操作。

进一步地,处理器可以调用存储器中存储的计算机程序,还执行以下操作:

通过RESTful API接口使用POST方法对所述数据库进行对应的新增、查询、更新操作。

进一步地,处理器可以调用存储器中存储的计算机程序,还执行以下操作:

解析所述操作指令,获得对应的安全令牌信息;

根据所述安全令牌信息进行安全验证。

进一步地,处理器可以调用存储器中存储的计算机程序,还执行以下操作:

采用摘要算法对所述安全令牌信息进行解密,获得对应的解密信息;

根据所述解密信息与预存信息进行对比实现安全验证。

所述解密信息包括访问端名称、密钥和时间戳信息。

进一步地,处理器可以调用存储器中存储的计算机程序,还执行以下操作:

通过分页调用方式向访问端返回对应的数据。

进一步地,处理器可以调用存储器中存储的计算机程序,还执行以下操作:

在交互操作完成后,将对应的交互操作存入访问日志。

本发明应用变道提醒装置的具体实施例与下述数据库交互方法各实施例基本相同,在此不作赘述。

根据上述硬件结构,提出本发明方法各个实施例。

参照图2,图2为本发明数据库交互方法第一实施例的流程示意图,所述数据库交互方法包括:

步骤S100,将所述数据库进行封装,并将所述数据库的接口定义成RESTful API接口;

本实施例中,需要先对数据库中存储的数据进行整理,数据库中每条数据都设置有对应的统一资源定位符URI,将所有的统一资源定位符URI存储于API服务群集,数据库接口则定义成RESTful API接口具体实现过程本来技术人员可以根据具体需求进行定义,不做过多介绍。本发明应用于如图1中内网所包括的各个设备,也可以应用于如图1所示的系统。这样封装完成后,也能够加快数据库的访问速度。同时也方便快速将数据库中SQL脚本封装成API接口对外发布。

步骤S200,通过RESTful API接口使用POST方法对所述数据库进行对应的交互操作。

在数据交互过程中,用户可以在数据访问端进行数据交互操作,数据访问端则根据交互操作发送对应的交互操作指令至数据库对应的API调用终端。进一步地,为了便于数据记录和监控,本实施例中通过对API接口使用POST方法实现对数据库资源的交互,其中交互操作包括新增、查询、更新操作中的至少一种,即可通过RESTful API接口使用POST方法对所述数据库进行对应的新增、查询和/或更新操作。

相对于现有技术中采用SQL语句查询的方式,不会暴露IP地址;相对采用应用程序封装开发的方式则成本更低。

本发明实施例提出的一种数据库交互方法、系统及可读存储介质,通过将所述数据库进行封装,并将所述数据库的接口定义成RESTful API接口;通过RESTful API接口使用POST方法对所述数据库进行对应的交互操作。本发明通过将数据库进行封装,接口则定义成RESTful API接口,统一访问接口(每个资源都有特定的统一资源定位符URI),从而无需直接通过SQL方式访问数据库,避免IP地址暴露问题,进而能够避免数据库爆破攻击风险以及非法授权访问的问题。

进一步地,基于上述实施例,在本实施例中,步骤S200还包括:

步骤S210,在接受到交互操作指令之后,对所述操作指令进行安全验证;

步骤S220,在安全验证通过后,根据所述操作指令对所述数据库进行对应的交互操作。

为提高数据的安全性,本实施例中,数据库所在系统/设备在接收到交互操作指令时,需要对操作指令进行安全验证,在安全验证通过后,才根据所述操作指令对所述数据库进行对应的交互操作。

具体的,安全验证过程可以包括:

步骤S211,解析所述操作指令,获得对应的安全令牌信息;

步骤S212,根据所述安全令牌信息进行安全验证。

本实施例中可以在每个数据访问端安装数字证书或者其他凭证,作为安全令牌信息,在每次访问时,发送的操作指令中还需要包括对应的安全令牌信息,从而使得数据库所在的系统/设备根据安全令牌信息进行安全验证。

进一步地,作为另种实施例,安全验证过程可以包括:

步骤S213,采用摘要算法对所述安全令牌信息进行解密,获得对应的解密信息;

步骤S214,根据所述解密信息与预存信息进行对比实现安全验证。

访问端发送的操作指令可以包括访问端名称(比如App ID)、时间戳和密钥,通过摘要算法将访问端名称(比如App ID)、时间戳和密钥加密成token,例如:AppId:XXXXX

Token:XXXX(AppId+时间戳+密钥)

Times:1543061362248

POST请求body内容为:

系统则会进行解密,获得对应的解密信息,此时解密信息包括对AppID、密钥及时间戳信息,然后对解密信息进行匹配,确认是否有权限访问响应的接口,认证通过后进行对应的交互操作。

本实施例使用API请求数据需要使用AppID+Token动态签名认证,为客户端分配Key(密钥,用于接口加密,不参与传输),将AppID和Key和时间戳参数组合成源串,根据摘要算法生成Token,请求数据需要将Token一并发送。这样,即使Token被劫持,对方不知道AppKey、摘要算法和时间戳,就无法伪造请求和篡改参数,获取不到数据。即使API接口暴露在公网也难以暴力破解,进一步提高安全性。

进一步地,,基于上述实施例,该数据库访问方法还包括:

步骤S220,通过分页调用方式向访问端返回对应的数据。

如果查询数据较大时,现有技术方案采用SQL进行查询或采用ESB进行查询,返回结果太大会导致ESB接口传输反应慢或接收程序处理慢。而本实施例中为了提高传输速度,查询结果通过分页方式返回,系统会将POST请求转换为配置好的SQL语句进行分页查询:

本实施例中作为示例:

SELECT*FROM(select配置的字段信息别名from(select配置的字段信息from配置的数据表order by排序字段)t where 1=1)T ORDER BY排序字段LIMIT 1OFFSET 100。

递增page值调用接口可以实现分页调用。

接口会返回标准的JSON格式数据(样例):

外部应用每天需要从公司各类数据库中获取多种数据资源,发布数据接口无需做复杂的程序开发,只需要使用可配置的API可以实现快速安全的对外发布数据,应用只需调用发布的API接口即可以全量或增量的获取发布的数据。实现快速数据发布,发挥数据价值,降低开发复杂性。采用API系统包装的SQL进行分页查询后,结果数据可以拆分成多个批次进行传输,改善接口响应性能。

进一步地,基于上述实施例,查阅图3,所述数据库交互方法还包括:

步骤S300,在交互操作完成后,将对应的交互操作记录存入访问日志。

本实施例,在每次交互操作执行完成后,将对应的操作记录存入访问日志,以便于后面查询或者进行数据恢复等操作。

此外,本发明实施例还提供一种数据库交互系统,所述数据库交互系统包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上任一实施例所述的数据库交互方法的步骤。

此外,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述数据库交互方法的步骤。

本发明车辆及计算机可读存储介质的具体实施例与上述数据库交互方法各实施例基本相同,在此不作赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:一种计算软件数据库可配置对接的方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!