CN114036215A - 加密数据库的访问方法、计算设备及存储介质 - Google Patents

加密数据库的访问方法、计算设备及存储介质 Download PDF

Info

Publication number
CN114036215A
CN114036215A CN202110956070.4A CN202110956070A CN114036215A CN 114036215 A CN114036215 A CN 114036215A CN 202110956070 A CN202110956070 A CN 202110956070A CN 114036215 A CN114036215 A CN 114036215A
Authority
CN
China
Prior art keywords
interface
encryption
database
encrypted
preset api
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110956070.4A
Other languages
English (en)
Inventor
张焱山
汪晟
李飞飞
李亦然
杨新颖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba China Co Ltd
Alibaba Cloud Computing Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba China Co Ltd, Alibaba Cloud Computing Ltd filed Critical Alibaba China Co Ltd
Priority to CN202110956070.4A priority Critical patent/CN114036215A/zh
Publication of CN114036215A publication Critical patent/CN114036215A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例提供一种加密数据库的访问方法、计算设备及存储介质。在本申请实施例中,提供预置API接口,获取加密数据库的配置参数以及加密参数,并加载预置API接口的驱动接口;根据驱动接口以及配置参数创建预置API接口的连接接口,连接接口用于连接加密数据库;根据加密参数、驱动接口以及连接接口对用户提供的数据库操作语句进行加密;将加密后的数据库操作语句发送至加密数据库进行处理,以获取处理后的结果。使得用户无需对数据库操作语句进行加密,通过预置API接口中提供的驱动接口以及连接接口,以及加密参数可以对数据库操作语句进行加密,提高数据的安全性。

Description

加密数据库的访问方法、计算设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种加密数据库的访问方法、计算设备及存储介质。
背景技术
在云计算场景中,用户的数据安全由云平台保证。对云平台及其工作人员的不信任是阻碍用户上云的主要因素之一。其中,加密数据库是使用TEE(Trusted ExecutionEnvironment,可信执行环境)等技术实现密文查询,令用户无需信任云平台也能确保数据安全。然而要实现具有较好安全性的密文查询,需要涉及到用户对已有程序逻辑进行定制化修改,增加了用户迁移到加密数据库的成本。
发明内容
本申请的多个方面提供一种加密数据库的访问方法、计算设备及存储介质,使得用户无需自己对数据库操作语句进行加密,即可提高数据的安全性。
本申请实施例提供一种加密数据库的访问方法,包括:提供预置API接口,获取加密数据库的配置参数以及加密参数,并加载预置API接口的驱动接口;根据所述驱动接口以及配置参数创建所述预置API接口的连接接口,所述连接接口用于连接加密数据库;根据所述加密参数、驱动接口以及所述连接接口对用户提供的数据库操作语句进行加密;将加密后的数据库操作语句发送至加密数据库进行处理,以获取处理后的结果。
本申请实施例还提供一种计算设备,包括:存储器、处理器以及通信组件;所述存储器,用于存储计算机程序;所述处理器,执行所述计算机程序,以用于:提供预置API接口,获取加密数据库的配置参数以及加密参数,并加载预置API接口的驱动接口;根据所述驱动接口以及配置参数创建所述预置API接口的连接接口,所述连接接口用于连接加密数据库;根据所述加密参数、驱动接口以及所述连接接口对用户提供的数据库操作语句进行加密;所述通信组件,用于将加密后的数据库操作语句发送至加密数据库进行处理,以获取处理后的结果。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器实现上述方法中的步骤。
本申请实施例还提供一种计算机程序产品,包括计算机程序或指令,其中,当计算机程序被处理器执行时,致使处理器实现上述方法中的步骤。
在本申请实施例中,提供预置API接口,获取加密数据库的配置参数以及加密参数,并加载预置API接口的驱动接口;根据驱动接口以及配置参数创建预置API接口的连接接口,连接接口用于连接加密数据库;根据加密参数、驱动接口以及连接接口对用户提供的数据库操作语句进行加密;将加密后的数据库操作语句发送至加密数据库进行处理,以获取处理后的结果。
其中,根据加密参数、驱动接口以及连接接口对用户提供的数据库操作语句进行加密,使得用户无需对数据库操作语句进行加密,通过预置API接口中提供的驱动接口以及连接接口,以及加密参数可以对数据库操作语句进行加密,可以提高数据的安全性。同时,无需用户消耗开发成本进行数据加密,用户对该加密过程无感知,提高用户的体验感。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一示例性实施例的加密数据库的访问方法的流程示意图;
图2为本申请一示例性实施例的加密数据库的访问的示意图;
图3为本申请一示例性实施例的加密数据库的访问系统的结构示意图;
图4为本申请一示例性实施例提供的加密数据库的访问装置的结构示意图;
图5为本申请一示例性实施例提供的计算设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
根据前文所述可知,加密数据库是使用TEE(Trusted Execution Environment,可信执行环境)等技术实现密文查询,令客户无需信任云平台也能确保数据安全。而为了在使用加密数据库过程中保证用户的数据安全,用户需在本地生成加密后的执行语句。此外,当从加密数据库中获取到对应的返回数据结果后,也需要用户在本地对数据结果进行解密。由此需要涉及到对已有应用程序的逻辑进行定制化修改,从而增加了用户迁移到加密数据库的成本。
基于此,本申请实施例提供了一种加密数据库的访问方法、计算设备及存储介质,使得用户无需对数据库操作语句进行加密,实现使用加密数据库过程中无需用户对应用程序进行修改,提高数据的安全性,极大地降低了用户迁移到加密数据库的开发成本。
下面结合方法实施例,针对加密数据库的访问过程进行详细说明。
图1为本申请一示例性实施例的一种加密数据库的访问方法的流程示意图。本申请实施例提供的该方法100由计算设备执行,如,电脑等。该方法100包括以下步骤:
101:提供预置API接口,获取加密数据库的配置参数以及加密参数,并加载预置API接口的驱动接口。
102:根据驱动接口以及配置参数创建预置API接口的连接接口,连接接口用于连接加密数据库。
103:根据加密参数、驱动接口以及连接接口对用户提供的数据库操作语句进行加密。
104:将加密后的数据库操作语句发送至加密数据库进行处理,以获取处理后的结果。
需要说明的是,更具体的执行主体可以是该电脑中的应用程序,该应用程序可以提供一个预置API接口。
以下针对上述步骤进行详细地阐述:
101:提供预置API接口,获取加密数据库的配置参数以及加密参数,并加载预置API接口的驱动接口。
其中,预置API(Application Programming Interface,应用程序接口)接口,可以用于执行数据库操作语句。如JDBC(Java数据库连接,Java Database Connectivity)接口。该JDBC接口是对于标准JDBC接口进行改写后的接口,但其仍然符合标准JDBC接口的协议。
加密数据库可以是指使用TEE等技术实现密文查询等操作的数据库,以保证数据的安全性。
配置参数可以是指用于连接加密数据库的参数,如数据库类型,主机名,端口,数据库名。加密参数是指用于对数据库操作语句进行加密或者对数据结果进行解密的参数,如加密算法、加密模式以及密钥等。该加密参数中的加密算法、加密模式可以根据需求来确定,由此可以满足不同需求,灵活应用不同的加密算法和模式。
驱动接口是指预置API接口与加密数据库之间的转换接口,将预置API接口与加密数据库关联连接的接口。
例如,用户可以通过安装在电脑上的加密数据库应用程序与加密数据库进行连接,从而向加密数据库发送数据库操作语句。在该应用程序中可以调用预置JDBC接口,即可以通过应用程序提供该接口。该接口被改写,但仍符合标准JDBC接口的协议。应用程序可以读取该JDBC接口的URL(Uniform Resource Locator,统一资源定位器),其中可以包括配置参数以及加密参数。应用程序读取到该URL后,将其中的参数传入JDBC驱动程序管理器,该驱动程序管理器通过配置参数中的数据库标识,如数据库名,加载与该数据库名对应的驱动接口EncDriver。
其中,获取加密数据库的配置参数以及加密参数,包括:读取预置API接口的配置文件,获取配置文件中的配置参数以及加密参数。
例如,根据前文所述,电脑上的应用程序可以读取JDBC接口的配置文件,从该配置文件中读取出上述URL,其中包括上述参数。就不再过多赘述。
其中,加载预置API接口的驱动接口,包括:根据配置参数,获取加密数据库的标识;通过预置API的驱动程序管理器,根据加密数据库的标识,加载与标识对应的驱动接口。
例如,根据前文所述,电脑上的应用程序通过预置JDBC接口的JDBC驱动程序管理器,从配置参数中获取到数据库标识,如数据库名,并加载与该数据库名对应的驱动接口EncDriver。如图2所示,即执行步骤211:加载驱动接口。
此外需要说明的是,对于其它服务的需求,也可以通过服务器提供上述服务。具体的可以是电脑通过web网络浏览器从加密数据库所部署的服务器处获取到服务界面,同时从该服务器处加载上述预置API接口到本地进行对应功能的执行。但是加密过程依旧在本地完成,加密后的数据才可以离开本地。此时,也可以理解为是本地提供了上述预置API接口,但其具体是从服务器处加载到本地执行的功能。
102:根据驱动接口以及配置参数创建预置API接口的连接接口。
其中,连接接口(EncConnection)用于连接加密数据库。
具体的,根据驱动接口以及配置参数创建预置API接口的连接接口,包括:调用驱动接口的连接方法并根据配置参数,连接加密数据库,并创建对应的连接对象,根据连接对象返回至预置API接口对应的连接接口。
例如,根据前文所述,如图2所示,电脑上的应用程序通过预置JDBC接口中加载后的驱动接口EncDriver,即驱动接口202,解析URL中配置参数。然后调用驱动接口EncDriver的连接函数,或者连接方法,并根据配置参数中的数据库类型,主机名,端口,数据库名连接数据库。从而得到连接接口203的对象,并返回预置JDBC接口201该对象的连接接口203,即创建了该预置JDBC接口201的连接接口203,执行了步骤212:创建连接接口。
需要说明的是,返回的连接接口可以是标准JDBC接口的连接接口。
103:根据加密参数、驱动接口以及连接接口对用户提供的数据库操作语句进行加密。
其中,数据库操作语句是指适用于数据库的执行语句,如SQL(结构化查询语言,Structured Query Language)语句。
具体的,根据加密参数、驱动接口以及连接接口对用户提供的数据库操作语句进行加密,包括:在创建连接接口后,通过驱动接口以及加密参数实例化对应的加密器;通过预置API接口对应的连接接口,创建预置API接口对应的执行接口,用于执行数据库操作语句;通过预置API接口获取用户提供的数据库操作语句,通过执行接口调用对应的加密器,对数据库操作语句进行加密。
其中,实例化是指在面向对象的编程中,把用类创建对象的过程称为实例化。是将一个抽象的概念类,具体到该类实物的过程。
例如,根据前文所述,如图2所示,电脑上的应用程序通过预置JDBC接口201中加载后的驱动接口EncDriver,即驱动接口202,解析URL中加密参数。在创建连接接口后,驱动接口EncDriver根据加密参数实例化加密器(CryptoRewriter,也可以称为SQL改写器)207。应用程序可以通过返回至预置JDBC接口的连接接口203,调用其对应的创建方法,执行步骤213:创建执行接口A,如EncStatement接口,即执行接口A 204。或者调用其对应的创建方法,执行步骤214:创建执行接口B,如EncPrepared Statement接口,即执行接口B 205。应用程序可以根据其接收到的用户输入的SQL语句来确定创建哪个执行接口。将创建后的执行接口返回至预置JDBC接口201。应用程序将SQL语句输入至预置JDBC接口201中的EncStatement接口或EncPrepared Statement接口,即执行步骤215:输入数据库操作语句,至执行接口A 204(如EncStatement接口)或执行接口B 205(如EncPrepared Statement接口)。执行接口A 204或执行接口B 205会调用实例化后的加密器207对该SQL语句进行加密,即执行步骤220:操作语句加密。加密器207可以根据加密算法以及加密模式等进行加密。
需要说明的是,用户可以通过应用程序输入数据库操作语句,如SQL语句。应用程序即可获取到用户提供的语句。然后应用程序可以根据该语句的结构,确定该语句是否为参数化语句。如,SQL语句:SELECT XX FROM XX WHERE XX〉1。该语句由于其参数为固定数值“1”,所以其属于非参数化语句。如果SQL语句:SELECT XX FROM XX WHERE XX〉?。该语句由于其参数为非固定数值“?”,所以其属于参数化语句。对于非参数化语句,则需要创建EncStatement接口。对于参数化语句,则需要创建EncPrepared Statement接口。另外,在进行数据库操作语句加密的时候,如对SQL语句进行加密,是针对其固定数值,如“1”或,非固定数值“?”进行加密。对于该语句的其它部分可以在语句传输的过程由传输信道进行加密。就不再过多赘述。由此,即可以支持参数化SQL语句的加密,也可以支持非参数化SQL语句的加密,适用性较好。
其中,通过驱动接口以及加密参数实例化对应的加密器,包括:通过驱动接口以及所述加密参数中的加密算法以及加密模式,实例化对应的加密器。
例如,根据前文所述,应用程序通过预置JDBC接口中加载后的驱动接口EncDriver,即驱动接口,解析URL中加密参数,如加密算法以及加密模式等。在创建连接接口后,驱动接口EncDriver根据加密算法以及加密模式等实例化加密器,如图2所示,加密器207。
为了后续对数据结果进行解密,还需要实施例化对应的解密器。
具体的,该方法100还包括:在创建连接接口后,通过驱动接口以及加密参数中的密钥实例化对应的解密器;通过执行接口调用对应的加密器,对数据库操作语句进行加密,包括:通过加密器从解密器获取密钥,根据加密算法、加密模式以及密钥对数据库操作语句进行加密。
例如,根据前文所述,如图2所示,应用程序通过预置JDBC接口201中加载后的驱动接口EncDriver,即驱动接口202,解析URL中加密参数,如密钥等。在创建连接接口后,驱动接口EncDriver根据密钥等实例化解密器(EncDB SDK,也可以称为加密数据库软件开发包)208。执行接口A 204(如EncStatement接口)或执行接口B 205(如EncPrepared Statement接口)会调用实例化后的加密器207对该SQL语句进行加密,加密器207在进行加密的时候可以向实例化后的解密器208获取密钥,然后加密器207可以根据加密算法、加密模式以及密钥等进行加密。其中,加密器207在进行加密的时候,可以针对SQL语句中的固定数值或非固定数据的数据类型进行加密,数据类型可以包括int整数型、string字符串型等。根据不同的类型,调整数值使其符合加密算法的数据类型要求,从而进行后续的加密。通过对数据类型的确定,能通用的支持改写任意SQL语句中的数据类型,对新操作或数据类型的支持无需更新,就可以与数据库中的数据表现一致。
由此,应用程序通过JDBC接口的URL配置的加密参数,来灵活地实现针对不同加密算法和模式的加密,提高了加密的普适性。
104:将加密后的数据库操作语句发送至加密数据库进行处理,以获取处理后的结果。
例如,根据前文所述,电脑上的应用程序通过预置JDBC接口得到加密后的SQL语句。通过预置JDBC接口,将加密后的SQL语句发送至云服务器上对应的加密数据库进行处理。加密数据库接收到该加密后的SQL语句在TTE环境下进行解密,然后在TTE环境下根据解密后的语句进行执行,如查询对应的加密数据,或者进行数据存储。如果进行数据存储,可以将数据进行加密后存储至加密数据库中。
具体的,将加密后的数据库操作语句发送至加密数据库进行处理,包括:通过预置API接口对应的执行接口,发送加密后的数据库操作语句至加密数据库进行处理。
例如,根据前文所述,如图2所示,电脑上的应用程序通过预置JDBC接口201中的加密器207加密了SQL语句,然后返回至对应的执行接口,如执行接口A 204(如EncStatement接口)。预置JDBC接口201通过该执行接口A 204(如EncStatement接口)发送加密后的SQL语句至云服务器上对应的加密数据库进行处理。就不再过多赘述。
需要说明的是,对于加密数据库而言,其执行的操作需要在TTE环境下进行。
本申请实施例中的由于预置JDBC接口其不仅遵循标准的JDBC协议,还可以实现上述数据加密,从而使得使用加密数据库需要的额外程序代码改动,都会被封装在该重写的预置JDBC接口中,允许程序代码直接使用原有的明文SQL语句,且无需对SQL语句进行限制,可适用于较为广泛的查询场景,并在实现使用加密数据库过程中无需用户进行修改,极大地降低了用户迁移到加密数据库的成本,此外,用户的明文的数据库操作语句中的数据不出本地主机,可以保证数据的安全。
此外,当数据库返回数据后,需要进行解密展示,具体的过程如下:
具体的,该方法100还包括:通过预置API接口对应的执行接口,创建预置API接口对应的结果集接口;通过预置API接口对应的结果集接口,从加密数据库获取到加密后的数据结果;通过结果集接口调用对应的解密器,通过解密器对数据结果进行解密;将解密后的数据进行展示。
其中,结果集接口(EncResultSet)是指用于接收数据库返回数据的接口。
例如,根据前文所述,如图2所示,电脑上的应用程序通过预置JDBC接口201中执行接口A 204(如EncStatement接口)发送加密后的SQL语句的同时,创建对应的结果集接口206(EncResultSet),即执行步骤216:创建结果集接口。当通过预置JDBC接口201中执行接口A 204(如EncStatement接口)发送加密后的SQL语句至加密数据库,可以通过结果集接口206(EncResultSet)接收从加密数据库返回的加密后的数据,如加密后的查询数据结果。然后,结果集接口206(EncResultSet)将加密后的查询数据结果发送至解密器208进行数据结果的解密,即执行步骤217:数据结果解密。解密器208接收到该加密后的查询数据结果后,根据密钥进行解密,得到解密后的数据结果,并返回至结果集接口206(EncResultSet),即执行步骤218:返回解密后的数据结果,至结果集接口206(EncResultSet)。电脑上的应用程序可以通过预置JDBC接口201中结果集接口206(EncResultSet)获取到解密后的数据结果,从而应用程序可以通过预置JDBC接口201中结果集接口206展示解密后的数据结果,并展示给用户,即执行步骤219:展示数据结果。
需要说明是,对返回的加密后的数据进行解密的过程对于用户而言也是无感知的,用户也无需自己在本地对加密后的数据进行解密。
预置JDBC接口无需外部依赖,能以库的形式被应用代码集成,无需信任中间代理或用户自行部署代理。且预置JDBC接口是基于Java(一种面向对象编程语言)版本的JDBC接口,相对其它编程语言而言,如C语言和C++语言在易用性、跨平台性和性能方面都会有较好的表现。
此外,还值得说明的是,由于本申请实施例可以适用于多种SQL语句,同样的也可以适用于复合查询表达式的SQL语句,加密数据库在接收到加密后的这种类型的SQL语句,会将最终处理后的数据结果通过加密的方式进行加密返回至结果集接口。无需通过预置JDBC接口再进行其它的处理,即无需大量的本地计算,能充分发挥加密数据库的性能。
图3为本申请一示例性实施例提供的一种加密数据库的访问的结构示意图。如图3所示,该系统300可以包括:第一设备301以及第二设备302。
其中,第一设备301可以是有一定计算能力的设备,可以实现向第二设备302发送数据的功能,也可以接收第二设备302发送的数据。第一设备301的基本结构可以包括:至少一个处理器。处理器的数量可以取决于具有一定计算能力装置的配置和类型。具有一定计算能力装置也可以包括存储器,该存储器可以为易失性的,例如RAM,也可以为非易失性的,例如只读存储器(Read-Only Memory,ROM)、闪存等,或者也可以同时包括两种类型。存储器内通常存储有操作系统(Operating System,OS)、一个或多个应用程序,也可以存储有程序数据等。除了处理单元和存储器之外,具有一定计算能力装置还包括一些基本配置,例如网卡芯片、IO总线、显示组件以及一些外围设备等。可选地,一些外围设备可以包括,例如键盘、输入笔等。其它外围设备在本领域中是众所周知的,在此不做赘述。可选地,第一设备301可以为智能终端,例如,手机、台式电脑、笔记本、平板电脑等。
第二设备302是指可以在网络虚拟环境中提供计算处理服务的设备,可以是指利用网络进行数据处理的设备。在物理实现上,第二设备302可以是任何能够提供计算服务,响应服务请求,并进行数据处理的设备,例如可以是云服务器、云主机、虚拟中心、常规服务器等等,其上构架有数据库。第二设备302的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。
具体的,第一设备301,提供预置API接口,获取加密数据库的配置参数以及加密参数,并加载预置API接口的驱动接口;根据驱动接口以及配置参数创建预置API接口的连接接口,连接接口用于连接加密数据库;根据加密参数、驱动接口以及连接接口对用户提供的数据库操作语句进行加密;将加密后的数据库操作语句发送至加密数据库进行处理,以获取处理后的结果。
具体的,第一设备301,读取预置API接口的配置文件,获取配置文件中的配置参数以及加密参数。
具体的,第一设备301,根据配置参数,获取加密数据库的标识;通过预置API的驱动程序管理器,根据加密数据库的标识,加载与标识对应的驱动接口。
具体的,第一设备301,调用驱动接口的连接方法并根据配置参数,连接加密数据库,并创建对应的连接对象,根据连接对象返回至预置API接口对应的连接接口。
具体的,第一设备301,在创建连接接口后,通过驱动接口以及加密参数实例化对应的加密器;通过预置API接口对应的连接接口,创建预置API接口对应的执行接口,用于执行数据库操作语句;通过预置API接口获取用户提供的数据库操作语句,通过执行接口调用对应的加密器,对数据库操作语句进行加密。
具体的,第一设备301,通过驱动接口以及加密参数中的加密算法以及加密模式,实例化对应的加密器。
此外,第一设备301,在创建连接接口后,通过驱动接口以及加密参数中的密钥实例化对应的解密器;通过加密器从解密器获取密钥,根据加密算法、加密模式以及密钥对数据库操作语句进行加密。
具体的,第一设备301,通过预置API接口对应的执行接口,发送加密后的数据库操作语句至第二设备302中部署的加密数据库进行处理。第二设备302中部署的加密数据库,根据加密后的数据库操作语句进行处理,得到加密后的数据结果,返回至第一设备301。
此外,第一设备301,通过预置API接口对应的执行接口,创建预置API接口对应的结果集接口;通过预置API接口对应的结果集接口,从第二设备302中部署的加密数据库获取到加密后的数据结果;通过结果集接口调用对应的解密器,通过所述解密器对数据结果进行解密;将解密后的数据进行展示。
其中,预置API接口包括:JDBC接口。
需要说明的是,在系统300中未能完全阐述的内容请参见前文方法100中的内容,其具体的实施方式也请参见前文所述的方法100的具体实施方式,此处就不再赘述。
在本申请实施例的加密数据库的访问的场景中,如图3所示,用户可以通过第一设备301(如电脑)上的加密数据库应用程序与加密数据库进行连接,从而向加密数据库发送数据库操作语句。在该应用程序中可以调用预置JDBC接口,即可以通过应用程序提供该接口。该接口被改写,但仍符合标准JDBC接口的协议。应用程序可以读取该JDBC接口的URL(Uniform Resource Locator,统一资源定位器),其中可以包括配置参数以及加密参数。应用程序读取到该URL后,将其中的参数传入JDBC驱动程序管理器,该驱动程序管理器通过配置参数中的数据库标识,如数据库名,加载与该数据库名对应的驱动接口EncDriver。
通过驱动接口EncDriver解析URL中配置参数。然后调用驱动接口EncDriver的连接函数,或者连接方法,并根据配置参数中的数据库类型,主机名,端口,数据库名连接数据库。从而得到连接接口的对象,并返回预置JDBC接口该对象的连接接口,即创建了该预置JDBC接口的连接接口。在创建连接接口后,驱动接口EncDriver根据加密参数实例化加密器(CryptoRewriter,也可以称为SQL改写器)。在创建连接接口后,驱动接口EncDriver根据密钥等实例化解密器(EncDB SDK,也可以称为加密数据库软件开发包)。应用程序可以通过返回至预置JDBC接口的连接接口,调用其对应的创建方法,创建执行接口A,如EncStatement接口。或者调用其对应的创建方法,创建执行接口B,如EncPrepared Statement接口。应用程序可以根据其接收到的用户输入的SQL语句来确定创建哪个执行接口。将创建后的执行接口返回至预置JDBC接口。应用程序将SQL语句输入至预置JDBC接口中的EncStatement接口或EncPrepared Statement接口。执行接口A或执行接口B会调用实例化后的加密器对该SQL语句进行加密。加密器在进行加密的时候可以向实例化后的解密器获取密钥,然后加密器可以根据加密算法、加密模式以及密钥等进行加密。
通过预置JDBC接口,将加密后的SQL语句发送至第二设备302,如云服务器上对应的加密数据库进行处理,即执行步骤311:发送加密后的执行语句。加密数据库接收到该加密后的SQL语句后,在TTE环境下进行解密,然后在该TTE环境下根据解密后的语句进行执行,如查询对应的加密数据,并返回加密后的数据结果,即执行步骤312:返回加密后的数据结果,或者进行数据存储。如果进行数据存储,可以将数据进行加密后存储至加密数据库中。电脑上的应用程序通过预置JDBC接口中执行接口A,如EncStatement接口,发送加密后的SQL语句的同时,创建对应的结果集接口(EncResultSet)。当通过预置JDBC接口中执行接口A,如EncStatement接口,发送加密后的SQL语句至加密数据库,可以通过结果集接口接收从加密数据库返回的加密后的数据,如加密后的查询数据结果。然后,结果集接口将加密后的查询数据结果发送至解密器进行数据结果的解密。解密器接收到该加密后的查询数据结果后,根据密钥进行解密,得到解密后的数据结果,并返回至结果集接口。电脑上的应用程序可以通过预置JDBC接口中结果集接口获取到解密后的数据结果,从而应用程序可以通过预置JDBC接口中结果集接口展示解密后的数据结果,并展示给用户。
此处未详细记载的内容可以参考前文所述的内容,就不再赘述。
在上述本实施例中,第一设备301、第二设备302进行网络连接。若第一设备301、第二设备302是通信连接,该移动网络的网络制式可以为2G(GSM)、2.5G(GPRS)、3G(WCDMA、TD-SCDMA、CDMA2000、UTMS)、4G(LTE)、4G+(LTE+)、WiMax、5G等中的任意一种。
图4为本申请一示例性实施例提供的一种加密数据库的访问装置的结构框架示意图。该装置400可以应用于终端设备,如电脑。该装置400包括:提供模块401、创建模块402、加密模块403以及发送模块404;以下针对各个模块的功能进行详细的阐述:
提供模块401,用于提供预置API接口,获取加密数据库的配置参数以及加密参数,并加载预置API接口的驱动接口。
创建模块402,用于根据驱动接口以及配置参数创建预置API接口的连接接口,连接接口用于连接加密数据库。
加密模块403,用于根据加密参数、驱动接口以及连接接口对用户提供的数据库操作语句进行加密。
发送模块404,用于将加密后的数据库操作语句发送至加密数据库进行处理,以获取处理后的结果。
具体的,提供模块401,用于读取预置API接口的配置文件,获取配置文件中的配置参数以及加密参数。
具体的,提供模块401,包括:获取单元,用于根据配置参数,获取加密数据库的标识;加载单元,用于通过预置API的驱动程序管理器,根据加密数据库的标识,加载与标识对应的驱动接口。
具体的,创建模块402,用于调用驱动接口的连接方法并根据配置参数,连接加密数据库,并创建对应的连接对象,根据连接对象返回至预置API接口对应的连接接口。
具体的,加密模块403,包括:实例化单元,用于在创建连接接口后,通过驱动接口以及加密参数实例化对应的加密器;创建单元,用于通过预置API接口对应的连接接口,创建预置API接口对应的执行接口,用于执行数据库操作语句;加密单元,用于通过预置API接口获取用户提供的数据库操作语句,通过执行接口调用对应的加密器,对数据库操作语句进行加密。
具体的,实例化单元,用于通过驱动接口以及加密参数中的加密算法以及加密模式,实例化对应的加密器。
此外,实例化单元,还用于在创建连接接口后,通过驱动接口以及加密参数中的密钥实例化对应的解密器;加密单元,用于通过加密器从解密器获取密钥,根据加密算法、加密模式以及密钥对数据库操作语句进行加密。
具体的,发送模块404,用于通过预置API接口对应的执行接口,发送加密后的数据库操作语句至加密数据库进行处理。
此外,创建模块402,用于通过预置API接口对应的执行接口,创建预置API接口对应的结果集接口;该装置400还包括:获取模块,用于通过预置API接口对应的结果集接口,从加密数据库获取到加密后的数据结果;解密模块,用于通过结果集接口调用对应的解密器,通过解密器对数据结果进行解密;展示模块,用于将解密后的数据进行展示。
其中,预置API接口包括:JDBC接口。
本装置400中未能详尽的内容请参考前文所述,就不再赘述。
以上描述了图4所示的装置400的内部功能和结构,在一个可能的设计中,图4所示的装置400的结构可实现为计算设备,如,电脑。如图5所示,该设备500可以包括:存储器501、处理器502以及通信组件503;
存储器501,用于存储计算机程序。
处理器502,用于执行计算机程序,以用于:提供预置API接口,获取加密数据库的配置参数以及加密参数,并加载预置API接口的驱动接口;根据驱动接口以及配置参数创建预置API接口的连接接口,连接接口用于连接加密数据库;根据加密参数、驱动接口以及连接接口对用户提供的数据库操作语句进行加密。
通信组件503,用于将加密后的数据库操作语句发送至加密数据库进行处理,以获取处理后的结果。
具体的,处理器502,具体用于:读取预置API接口的配置文件,获取配置文件中的配置参数以及加密参数。
具体的,处理器502,具体用于:根据配置参数,获取加密数据库的标识;通过预置API的驱动程序管理器,根据加密数据库的标识,加载与标识对应的驱动接口。
具体的,处理器502,具体用于:调用驱动接口的连接方法并根据配置参数,连接加密数据库,并创建对应的连接对象,根据连接对象返回至预置API接口对应的连接接口。
具体的,处理器502,具体用于:在创建连接接口后,通过驱动接口以及加密参数实例化对应的加密器;通过预置API接口对应的连接接口,创建预置API接口对应的执行接口,用于执行数据库操作语句;通过预置API接口获取用户提供的数据库操作语句,通过执行接口调用对应的加密器,对数据库操作语句进行加密。
具体的,处理器502,具体用于:通过驱动接口以及加密参数中的加密算法以及加密模式,实例化对应的加密器。
此外,处理器502,还用于:在创建连接接口后,通过驱动接口以及加密参数中的密钥实例化对应的解密器;处理器502,具体用于:通过加密器从解密器获取密钥,根据加密算法、加密模式以及密钥对数据库操作语句进行加密。
具体的,通信组件503,具体用于:通过预置API接口对应的执行接口,发送加密后的数据库操作语句至加密数据库进行处理。
此外,处理器502,还用于:通过预置API接口对应的执行接口,创建预置API接口对应的结果集接口;通过预置API接口对应的结果集接口,从加密数据库获取到加密后的数据结果;通过结果集接口调用对应的解密器,通过解密器对数据结果进行解密;将解密后的数据进行展示。
其中,预置API接口包括:JDBC接口。
另外,本发明实施例提供了一种计算机程序产品,包括计算机程序或指令,其中,当计算机程序被处理器执行时,致使处理器实现图1-2方法实施例中一种加密数据库的访问方法的步骤。就不再过多赘述了。该程序产品可以是安装在设备上的应用程序。
本发明实施例提供了一种计算机存储介质,计算机程序被一个或多个处理器执行时,致使一个或多个处理器实现图1-2方法实施例中一种加密数据库的访问方法的步骤。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102、103等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程多媒体数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程多媒体数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程多媒体数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程多媒体数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (13)

1.一种加密数据库的访问方法,包括:
提供预置API接口,获取加密数据库的配置参数以及加密参数,并加载预置API接口的驱动接口;
根据所述驱动接口以及配置参数创建所述预置API接口的连接接口,所述连接接口用于连接加密数据库;
根据所述加密参数、驱动接口以及所述连接接口对用户提供的数据库操作语句进行加密;
将加密后的数据库操作语句发送至加密数据库进行处理,以获取处理后的结果。
2.根据权利要求1所述的方法,所述获取加密数据库的配置参数以及加密参数,包括:
读取预置API接口的配置文件,获取所述配置文件中的配置参数以及加密参数。
3.根据权利要求1所述的方法,所述加载预置API接口的驱动接口,包括:
根据所述配置参数,获取加密数据库的标识;
通过所述预置API的驱动程序管理器,根据加密数据库的标识,加载与所述标识对应的驱动接口。
4.根据权利要求1所述的方法,所述根据所述驱动接口以及配置参数创建所述预置API接口的连接接口,包括:
调用所述驱动接口的连接方法并根据所述配置参数,连接所述加密数据库,并创建对应的连接对象,根据所述连接对象返回至所述预置API接口对应的连接接口。
5.根据权利要求1或4所述的方法,所述根据所述加密参数、驱动接口以及所述连接接口对用户提供的数据库操作语句进行加密,包括:
在创建所述连接接口后,通过所述驱动接口以及所述加密参数实例化对应的加密器;
通过预置API接口对应的连接接口,创建预置API接口对应的执行接口,用于执行数据库操作语句;
通过预置API接口获取用户提供的数据库操作语句,通过所述执行接口调用对应的加密器,对所述数据库操作语句进行加密。
6.根据权利要求5所述的方法,所述通过所述驱动接口以及所述加密参数实例化对应的加密器,包括:
通过所述驱动接口以及所述加密参数中的加密算法以及加密模式,实例化对应的加密器。
7.根据权利要求5所述的方法,所述方法还包括:
在创建所述连接接口后,通过所述驱动接口以及所述加密参数中的密钥实例化对应的解密器;
所述通过所述执行接口调用对应的加密器,对所述数据库操作语句进行加密,包括:
通过加密器从所述解密器获取密钥,根据所述加密算法、所述加密模式以及所述密钥对所述数据库操作语句进行加密。
8.根据权利要求1所述的方法,所述将加密后的数据库操作语句发送至加密数据库进行处理,包括:
通过预置API接口对应的执行接口,发送加密后的数据库操作语句至加密数据库进行处理。
9.根据权利要求1所述的方法,所述方法还包括:
通过预置API接口对应的执行接口,创建预置API接口对应的结果集接口;
通过预置API接口对应的结果集接口,从加密数据库获取到加密后的数据结果;
通过结果集接口调用对应的解密器,通过所述解密器对数据结果进行解密;
将解密后的数据进行展示。
10.根据权利要求1-9任一项所述的方法,所述预置API接口包括:JDBC接口。
11.一种计算设备,包括:存储器、处理器以及通信组件;
所述存储器,用于存储计算机程序;
所述处理器,执行所述计算机程序,以用于:
提供预置API接口,获取加密数据库的配置参数以及加密参数,并加载预置API接口的驱动接口;
根据所述驱动接口以及配置参数创建所述预置API接口的连接接口,所述连接接口用于连接加密数据库;
根据所述加密参数、驱动接口以及所述连接接口对用户提供的数据库操作语句进行加密;
所述通信组件,用于将加密后的数据库操作语句发送至加密数据库进行处理,以获取处理后的结果。
12.一种存储有计算机程序的计算机可读存储介质,计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器实现权利要求1-10任一项所述方法中的步骤。
13.一种计算机程序产品,包括计算机程序或指令,其中,当计算机程序被处理器执行时,致使处理器实现权利要求1-10任一项所述方法中的步骤。
CN202110956070.4A 2021-08-19 2021-08-19 加密数据库的访问方法、计算设备及存储介质 Pending CN114036215A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110956070.4A CN114036215A (zh) 2021-08-19 2021-08-19 加密数据库的访问方法、计算设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110956070.4A CN114036215A (zh) 2021-08-19 2021-08-19 加密数据库的访问方法、计算设备及存储介质

Publications (1)

Publication Number Publication Date
CN114036215A true CN114036215A (zh) 2022-02-11

Family

ID=80134331

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110956070.4A Pending CN114036215A (zh) 2021-08-19 2021-08-19 加密数据库的访问方法、计算设备及存储介质

Country Status (1)

Country Link
CN (1) CN114036215A (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105554038A (zh) * 2016-02-25 2016-05-04 浪潮通用软件有限公司 一种在线系统和离线系统数据交互时数据安全的管控方法
CN110413676A (zh) * 2019-07-25 2019-11-05 中国工商银行股份有限公司 数据库的访问方法及其装置、电子设备和介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105554038A (zh) * 2016-02-25 2016-05-04 浪潮通用软件有限公司 一种在线系统和离线系统数据交互时数据安全的管控方法
CN110413676A (zh) * 2019-07-25 2019-11-05 中国工商银行股份有限公司 数据库的访问方法及其装置、电子设备和介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHENXU111: ""jdbc学些(一):利用配置文件、接口等方式建立数据库连接"", Retrieved from the Internet <URL:"https://blog.csdn.net/chenxu111/article/details/83423832"> *
安华金和: ""四种常见数据库加密技术分析"", Retrieved from the Internet <URL:"https://baojiahao.baidu.com/s?id=1629697892500847442&wfr=spider&for=pc"> *

Similar Documents

Publication Publication Date Title
CN110619220B (zh) 对神经网络模型加密的方法及装置、存储介质
CN109413043B (zh) 实现数据库动态配置的方法及装置、电子设备、存储介质
CN109347629B (zh) 基于共享安全应用的密钥传递方法及系统、存储介质、设备
US20210004696A1 (en) System and method for automatic secure delivery of model
CN111427860B (zh) 分布式存储系统及其数据处理方法
CN111274611A (zh) 数据脱敏方法、装置及计算机可读存储介质
CN113647113A (zh) 基于网络的媒体处理安全性
US20180067777A1 (en) Application protection method, server, and terminal
CN111460503A (zh) 数据分享方法、装置、设备和存储介质
CN110795741B (zh) 对数据进行安全性处理的方法和装置
CN114531676A (zh) 一种密钥处理方法、装置和终端设备
JP2024535980A (ja) 部分ブロックのセキュアな暗号化
CN109343970B (zh) 基于应用程序的操作方法、装置、电子设备及计算机介质
CN117113423B (zh) 一种数据库透明加密方法、装置、设备及存储介质
CN116244682A (zh) 数据库的访问方法、装置、设备以及存储介质
CN109995534B (zh) 一种对应用程序进行安全认证的方法和装置
CN115859339A (zh) 一种云存储数据的加密和解密的方法、装置、介质及设备
CN114040381B (zh) 加密方法、解密方法、装置及电子设备
CN114036215A (zh) 加密数据库的访问方法、计算设备及存储介质
CN115941279A (zh) 数据中用户标识的加解密方法、系统及设备
CN111931222B (zh) 应用数据加密方法、装置、终端及存储介质
CN107403103B (zh) 文件解密方法和装置
KR100975508B1 (ko) 프로그램의 모듈의 동적 변경 방법 및 시스템
CN111460464B (zh) 数据加解密方法、装置、电子设备及计算机存储介质
CN115904361B (zh) 应用于微服务的数据处理方法、装置、设备和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40067021

Country of ref document: HK