CN109784081A - 一种数据库透明加密方法、装置、电子设备及存储介质 - Google Patents
一种数据库透明加密方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN109784081A CN109784081A CN201910119874.1A CN201910119874A CN109784081A CN 109784081 A CN109784081 A CN 109784081A CN 201910119874 A CN201910119874 A CN 201910119874A CN 109784081 A CN109784081 A CN 109784081A
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- sql command
- database
- sql
- field
- 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
Links
Abstract
本公开涉及一种数据库透明加密方法、装置、电子设备及可读存储介质,相比需要预先编写增、删、改、查四种操作的全部重写规则的现有技术,本公开提供的数据库透明加密方法仅需编写其中难度较低的增、删、改三种操作的重写规则,而将其中开发难度最大的查询操作通过预先创建好的视图来实现,该视图与存储有密文字段的密文数据原表同名、同字段,且视图中的每个字段是将密文数据原表中的每个密文字段通过解密函数映射而来的,可以十分轻量级的实现查询操作,无需编写复杂的重写规则,使得在满足通用性的基础上,尽可能的降低了开发难度和开发成本。应用了该数据库透明加密方法的装置、电子设备及可读存储介质也具有相同的有益效果。
Description
技术领域
本公开涉及数据透明加密技术领域,特别涉及一种数据库透明加密方法、装置、电子设备及计算机可读存储介质。
背景技术
为了增强透明加密技术所能够应用的数据库类型,也就是通用性,相关技术中存在一种借助SQL(Structured Query Language,结构化查询语言)网关的实现方法,即通过内置于SQL网关中的重写规则将用户输入的正常SQL命令重写为可对密文数据库中的密文数据进行各种操作的重写后SQL命令,由于SQL网关作为独立于密文数据库的一个组件,与数据库类型无关,也就无需依赖仅存在某些特定类型数据库中的特殊组件,极大的增加了通用性。
对密文数据库可进行的操作类型具体包括数据增加、数据删除、数据修改以及数据查询四种(可简称为增、删、改、查),而对SQL命令进行重写的意图也正是为了能够让以密文形式存储的数据能够正确响应于用户输入的普通SQL命令。为实现这一目的,相关技术需要预先开发上述四种类型的重写规则并预置于SQL网关中,但相比于增、删、改三种操作存在的局限性,查询操作的表现形式最灵活、使用次数最多,因此重写规则的数量也相对较多,这就导致查询部分的开发时长和开发难度都相对较大,成本也相对较高。
因此,如何在不改变通用性的基础上,尽可能的降低开发难度的开发成本,是本领域技术人员亟待解决的问题。
发明内容
本公开的目的是提供一种数据库透明加密方法、装置、电子设备及计算机可读存储介质,旨在解决现有技术需要编写增、删、改、查四种操作的全部重写规则导致开发难度较大的问题和数据库加密的通用性问题。
相比需要预先编写增、删、改、查四种操作的全部重写规则的现有技术,本公开仅需编写其中难度较低的增、删、改三种操作的重写规则,而将其中开发难度最大的查询操作通过预先创建好的视图来实现,该视图与存储有密文字段的密文数据原表同名、同字段,且视图中的每个字段是将密文数据原表中的每个密文字段通过解密函数映射而来的,可以十分轻量级的实现查询操作,无需编写复杂的重写规则,使得在满足通用性的基础上,尽可能的降低了开发难度和开发成本。
为了实现上述目的,本公开首先提供了一种数据库透明加密方法,该方法包括:
编写增、删和改三种操作的重写规则,并将所述重写规则置于SQL网关,以通过所述SQL网关实现用户对密文数据库进行的增、删和改三种操作;
创建与密文数据原表同名、同字段的视图,并将所述密文数据原表中的每个密文字段通过解密函数映射至所述视图中的对应字段,以通过所述视图实现用户对所述密文数据库进行的查询操作。
可选的,该数据库透明加密方法还包括:
接收用户访问所述密文数据库时发来的SQL命令;
确定所述SQL命令的操作类型;
当所述SQL命令的操作类型为增、删、改三种操作的任一种时,利用所述重写规则重写所述SQL命令,得到重写SQL命令,以使所述密文数据库根据所述重写SQL命令调用相应的加密或解密函数完成相应的增加、删除或修改操作;
当所述SQL命令的操作类型为查询操作时,确定所述SQL命令中的目标字段在所述视图中的位置,并根据所述视图与所述密文数据原表间的映射关系将所述密文数据原表中的目标密文字段解密为目标明文数据。
可选的,确定所述SQL命令的操作类型,包括:
分别使用不同操作类型的关键字匹配所述SQL命令中包含的字符串,得到匹配关键字;
将所述匹配关键字所属的访问类型确定为所述SQL命令的操作类型。
可选的,分别使用不同操作类型的关键字匹配所述SQL命令中包含的字符串,包括:
使用与所述查询操作对应的关键字匹配所述SQL命令中包含的字符串;
当所述SQL命令中包含的字符串不匹配于所述查询操作对应的关键字时,分别使用增、删、改对应的关键词匹配所述SQL命令中包含的字符串。
可选的,该数据库透明加密方法还包括:
根据所述密文数据原表构建密文索引,并利用所述密文索引加速增、删、改和查询操作。
为实现上述目的,本申请还提供了一种数据库透明加密装置,该装置包括:
增删改操作处理单元,用于编写增、删和改三种操作的重写规则,并将所述重写规则置于SQL网关,以通过所述SQL网关实现用户对密文数据库进行的增、删和改三种操作;
查询操作处理单元,用于创建与密文数据原表同名、同字段的视图,并将所述密文数据原表中的每个密文字段通过解密函数映射至所述视图中的对应字段,以通过所述视图实现用户对所述密文数据库进行的查询操作。
可选的,该数据库透明加密装置还包括:
命令接收单元,用于接收用户访问所述密文数据库时发来的SQL命令;
操作类型确定单元,用于确定所述SQL命令的操作类型;
非查询操作处理单元,用于当所述SQL命令的操作类型为增、删、改三种操作的任一种时,利用所述重写规则重写所述SQL命令,得到重写SQL命令,以使所述密文数据库根据所述重写SQL命令调用相应的加密或解密函数完成相应的增加、删除或修改操作;
查询操作处理单元,用于当所述SQL命令的操作类型为查询操作时,确定所述SQL命令中的目标字段在所述视图中的位置,并根据所述视图与所述密文数据原表间的映射关系将所述密文数据原表中的目标密文字段解密为目标明文数据。
其中,所述操作类型确定单元包括:
主动匹配子单元,用于分别使用不同操作类型的关键字匹配所述SQL命令中包含的字符串,得到匹配关键字;
操作类型确定子单元,用于将所述匹配关键字所属的访问类型确定为所述SQL命令的操作类型。
其中,所述主动匹配子单元包括:
查询关键字优先匹配模块,用于使用与所述查询操作对应的关键字匹配所述SQL命令中包含的字符串;
增删改关键字后续匹配模块,用于当所述SQL命令中包含的字符串不匹配于所述查询操作对应的关键字时,分别使用增、删、改对应的关键词匹配所述SQL命令中包含的字符串。
可选的,该数据库透明加密装置还包括:
密文索引加速单元,用于根据所述密文数据原表构建密文索引,并利用所述密文索引加速增、删、改和查询操作。
为实现上述目的,本公开还提供了一种电子设备,该电子设备包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现如上述内容所描述的数据库透明加密方法。
为实现上述目的,本公开还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述内容所描述的数据库透明加密方法。
显然,相比需要预先编写增、删、改、查四种操作的全部重写规则的现有技术,本公开提供的数据库透明加密方法仅需编写其中难度较低的增、删、改三种操作的重写规则,而将其中开发难度最大的查询操作通过预先创建好的视图来实现,该视图与存储有密文字段的密文数据原表同名、同字段,且视图中的每个字段是将密文数据原表中的每个密文字段通过解密函数映射而来的,可以十分轻量级的实现查询操作,无需编写复杂的重写规则,使得在满足通用性的基础上,尽可能的降低了开发难度和开发成本。
本公开同时公开了一种数据库透明加密装置、电子设备及计算机可读存储介质,具有相同的有益效果,在此不再赘述。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开给出的几种实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本公开实施例提供的一种数据库透明加密方法的流程图;
图2为本公开实施例提供的一种访问密文数据库中密文数据的方法的流程图;
图3为图2所示实施例的一种密文数据访问流程示意图;
图4为本公开实施例提供的数据库透明加密方法中一种基于关键词确定SQL命令操作类型的方法的流程图;
图5为本公开实施例提供的一种数据库透明加密装置的结构框图;
图6为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
本公开的目的是提供一种数据库透明加密方法、装置、电子设备及计算机可读存储介质,旨在解决现有技术需要编写增、删、改、查四种操作的全部重写规则导致开发难度较大的问题和数据库加密的通用性问题。
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
实施例一
请参见图1,图1为本公开实施例提供的一种数据库透明加密方法的流程图,其包括以下步骤:
S101:编写增、删和改三种操作的重写规则,并将重写规则置于SQL网关,以通过SQL网关实现用户对密文数据库进行的增、删和改三种操作;
区别于需要编写增、删、改、查四种重写规则的现有技术,本申请只需编写其中开发难度较小、耗时较短、成本较低的增、删、改三种重写规则,并将其置入处于密文数据库的上层的SQL网关,以通过内置于SQL网关中的重写规则,将用户发来的增、删、改三种操作类型的普通SQL命令转换为可被密文数据库识别和处理的重写后SQL命令。
之所以说增、删、改三种操作类型的重写规则的开发难度较小,是因为数据库作为存储海量数据的载体,绝大多数实际情况下是为前端用户提供基于海量数据的查询操作,尤其是在一些基于已有数据进行审核的部门、单位以及企业,相比于遵循各种查询方式基于数据库中已存储数据进行查询的次数,增加、删除以及修改的使用次数都是十分少的,且相比于多样化的查询方式,增加、删除以及修改的使用格式都十分固定(增加通常只需要确定新增数据以及新增位置即可,删除只需要确定目标数据即可。修改只需要确定旧数据和新数据即可),因此,这三种操作类型的重写规则的开发难度较小。
S102:创建与密文数据原表同名、同字段的视图,并将密文数据原表中的每个密文字段通过解密函数映射至视图中的对应字段,以通过视图实现用户对密文数据库进行的查询操作。
增、删、改、查四种操作类型中的增、删、改三种由置于SQL网关中的重写规则负责处理,本申请使用视图的方式来处理剩余的开发难度较大、耗时较长、成本较高的查询操作。其中,该视图是根据存储有密文数据的密文数据原表创建得到的同名、同字段的虚拟数据表,其数据存储方式与密文数据原表相同,拥有与密文数据原表相同的每个字段,只不过密文数据原表中的每个字段是存储有密文数据的密文字段,而视图中的每个字段则是通过解密函数将每个密文字段映射得到的。
在实际使用中,由于该视图与存储实际密文数据的密文数据表同名,用户输入的SQL查询命令都会通过该视图来实现,首先在视图中确定接收到的SQL查询命令对应的目标视图字段,再通过目标视图字段与密文数据原表中相应密文字段间的映射关系调用解密函数将相应的密文数据解密后返回给用户,用户全程无感知。
根据图1给出的数据库透明加密方法的流程,可以得到如图2所示的密文数据访问方法,图2从对密文数据库进行实际操作的角度描述了按照上述数据库透明加密方法完成数据透明加密后的使用方法,包括如下步骤:
S201:接收用户访问密文数据库时发来的SQL命令,并确定SQL命令的操作类型;
首先接收用户发来的对密文数据进行访问的SQL命令,并确定该SQL命令的具体操作类型。确定具体操作类型的目的在于确定要使用哪种方式(SQL网关中的重新规则还是与密文数据原表同名、同字段的视图)来完成该SQL命令的处理。
SQL命令具体包括四种类型的操作:增加、删除、修改以及查询,增加表示需要向密文数据库中新增密文数据,删除表示需要去除当前密文数据库中已存储的密文部分数据,修改表示需要将当前密文数据库中已存储的部分数据进行修改或替换(例如从原有的A修改或替换为B),查询则是按照查询要求从当前密文数据库中已存储的密文数据中查得目标数据。
确定SQL命令操作类型的方式多种多样,例如表征不同操作类型的关键字、命令长度、命令头信息,以及一些根据特殊要求添加的可用于区分不同类型操作的标签、标记等等,进一步的,包括诸如关键字、命令长度、命令头信息、标签以及标记在内的多种操作类型区别特征,可能会由于数据库类型的不同存在差异,具体选用何种方式来确定SQL命令的操作类型,可根据实际情况灵活选择最合适的方案,此处并不做具体限定。
此处以关键字判别操作类型为例,进行如何判别的说明:由于上述四种类型的操作都带有明显的意图和指向性,相应类型的SQL命令中也通常会携带有用于判别类型的关键字,例如表示增加的INSTER、表示删除的DELETE、表示修改的UPDATE,以及表示查询的SELETE等,在不同版本的SQL协议标准下,可能会选用不同的关键字表示相同的类型,或者基于不同的命令生成格式,使得关键字所处的字段或字节数不同等等。具体根据何种关键字判别每条拦截到的SQL命令的访问类型,可根据实际情况下所采用的SQL协议标准以及可能存在的特殊要求,此处并不做具体限定。
S202:当SQL命令的操作类型具体为增、删、改三种操作的任一种时,利用重写规则重写SQL命令,得到重写后SQL命令,以使密文数据库根据重写后SQL命令调用相应的加密或解密函数完成相应增加、删除或修改操作;
本步骤建立在S201判断出接收到的SQL命令的操作类型具体为增、删、改三种操作的任一种的基础上,本申请通过将此类SQL命令发至内置有增、删、改三种重写规则的SQL网关来对其进行重写的方式来处理,得到重写后可被密文数据库识别,并将SQL命令中携带的明文数据正确的以密文形式在密文数据中完成相应的操作。
S203:当SQL命令的操作类型具体为查询操作时,确定SQL命令中的目标字段在视图中的位置,并根据视图与密文数据原表间的映射关系将密文数据原表中的目标密文字段解密为目标明文数据。
本步骤建立在S201判断出接收到的SQL命令的操作类型具体为查询存储操作的基础上,本申请通过将此类SQL命令发给预设的与密文数据原表同名、同字段的视图来处理,借助视图中每个字段与密文数据原表中每个密文字段间的映射管理来实现密文数据的查询。
进一步的,为了更加快速、准确的查得目标数据,还可以引入密文索引技术,密文索引技术是索引技术的密文版,适用于密文数据的索引,索引通常是由目标数据提取出来的,通常具有唯一指向性,即一个索引只会指向唯一的目标数据,但由于索引长度较短、数据量较小,方便存储的快速定位。由于本公开所处的实际场景为将明文数据加密后以密文形式存储的密文数据,因此密文索引是基于密文数据提取得到。
密文索引技术有多种实现方式,目前而言,可分为两大类,即借助数据库本身特有机制实现的拓展索引和与数据库自身无关的保序哈希索引。其中,拓展索引是基于一些特定类型数据库拥有的独特机制实现的,例如Oracle数据库,在其它不包含此类型的数据库中无法使用,因此通用性较低,但在特定数据库中基于其本身机制进行的索引,性能更佳;保序哈希索引则是通过保序哈希函数生成与字段的明文数据相对应的索引值,该索引值能够体现该明文数据的大小关系,以便通过该索引值实现对增、删、改和查询操作的加速,由于与数据库类型无关,其拥有较高的通用性。本公开可以根据实际应用的数据库类型具体选择使用哪种密文索引方法,同时,也不排除随着技术的发展,出现的与此类方式相同或相似的新的密文索引方法。
除可参见图2所示的密文数据访问方法的流程图外,还可以参见图3所示的更直观的示意图,与上述内容所描述的内容一致,此处不再一一赘述。
根据上述技术方案,可以看出:相比需要预先编写增、删、改、查四种操作的全部重写规则的现有技术,本公开提供的数据库透明加密方法仅需编写其中难度较低的增、删、改三种操作的重写规则,而将其中开发难度最大的查询操作通过预先创建好的视图来实现,该视图与存储有密文字段的密文数据原表同名、同字段,且视图中的每个字段是将密文数据原表中的每个密文字段通过解密函数映射而来的,可以十分轻量级的实现查询操作,无需编写复杂的重写规则,使得在满足通用性的基础上,尽可能的降低了开发难度和开发成本。
实施例二
请参见图4,图4为本公开实施例提供的数据库透明加密方法中一种基于关键词确定SQL命令操作类型的方法的流程图,在实施例一的基础上,本实施例提供了一种基于关键字的确定SQL命令操作类型的方法,包括如下步骤:
S301:分别使用不同访问类型的关键字匹配SQL命令中包含的字符串,得到匹配关键字;
S302:将匹配关键字所属的访问类型作为SQL命令的操作类型。
本实施例旨在分别使用不同访问类型的关键字来主动匹配SQL命令中包含的字符串,其中,用于主动匹配的各类型关键字还可以形成相应的关键字集合,每种类型的关键字结合将包含有各版本SQL协议标准对应的访问类型字符串以及自定义访问类型特征,以通过主动匹配的方式排除因版本差异导致无法基于固定提取方式得到准确的用于判定访问类型的字符串,提高判别准确率。
进一步的,在匹配时可以根据实际情况下可使用的系统资源选择性的选取串行方式或并行方式,并行的方式可在系统资源充足的情况下,尽可能的减少匹配耗时。
为了加快确定操作类型所需的时长,还可以优先使用与查询操作对应的关键字来匹配SQL命令中包含的字符串,因为一条SQL命令只对应一种操作类型,而根据本申请提供的方案,在处理过程中,选用SQL网关的重写方式还是视图方式,仅与操作类型是否为查询操作相关,因此先使用查询操作对应的关键字进行匹配,可以更加快速的确定出应发往SQL网关进行后续处理还是发往视图进行后续处理,如果是查询操作,在通常情况下将无需再次使用增、删、改三种操作类型的关键字,减少了匹配时间,提升了效率。
在本申请的另一个实施例中,为了防止因SQL命令在传输过程中因可能存在的各种干扰因素导致无法被SQL网关、视图或者密文数据所正常识别时,还可以通过预设路径返回相应的错误信息,该预设路径包括邮件、即时通讯应用、界面弹窗以及各种报警错误等,目的在于将这一问题及时的进行返回,甚至还可以将无法判别的新型错误信息转给后台管理人员,并按照接收到的后台管理人员给出的解决措施来进行后续处理。
更进一步的,为了防止诸如SQL注入等恶意手段对数据库敏感信息的窃取,还可以在SQL网关上或区别于SQL网关的另一功能模块上增加对恶意手段的检测,同时还可以辅以日志来记录SQL网关和对数据库进行的每一次操作,以便后期追溯使用。
因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到根据本公开提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本公开的保护范围内。
实施例三
请参见图5,图5为本公开实施例提供的一种数据库透明加密装置的结构框图,该装置可以包括:
增删改操作处理单元100,用于编写增、删和改三种操作的重写规则,并将重写规则置于SQL网关,以通过SQL网关实现用户对密文数据库进行的增、删和改三种操作;
查询操作处理单元200,用于创建与密文数据原表同名、同字段的视图,并将密文数据原表中的每个密文字段通过解密函数映射至视图中的对应字段,以通过视图实现用户对密文数据库进行的查询操作。
进一步的,该数据库透明加密装置还可以包括:
命令接收单元,用于接收用户访问密文数据库时发来的SQL命令;
操作类型确定单元,用于确定SQL命令的操作类型;
非查询操作处理单元,用于当SQL命令的操作类型为增、删、改三种操作的任一种时,利用重写规则重写SQL命令,得到重写SQL命令,以使密文数据库根据重写SQL命令调用相应的加密或解密函数完成相应的增加、删除或修改操作;
查询操作处理单元,用于当SQL命令的操作类型为查询操作时,确定SQL命令中的目标字段在视图中的位置,并根据视图与密文数据原表间的映射关系将密文数据原表中的目标密文字段解密为目标明文数据。
其中,该操作类型确定单元可以包括:
主动匹配子单元,用于分别使用不同操作类型的关键字匹配SQL命令中包含的字符串,得到匹配关键字;
操作类型确定子单元,用于将匹配关键字所属的访问类型确定为SQL命令的操作类型。
其中,该主动匹配子单元可以包括:
查询关键字优先匹配模块,用于使用与查询操作对应的关键字匹配SQL命令中包含的字符串;
增删改关键字后续匹配模块,用于当SQL命令中包含的字符串不匹配于查询操作对应的关键字时,分别使用增、删、改对应的关键词匹配SQL命令中包含的字符串。
进一步的,该数据库透明加密装置还可以包括:
密文索引加速单元,用于根据密文数据原表构建密文索引,并利用密文索引加速增、删、改和查询操作。
该数据库透明加密装置对应于上述给出的数据库透明加密方法,本实施例作为与方法实施例对应的产品实施例存在,具有与方法实施例相同的有益效果,各功能单元的说明的解释可参见上述各方法实施例,此处不再一一赘述。
实施例四
图6是根据一示例性实施例示出的一种电子设备300的框图。如图6所示,电子设备300可以包括处理器301和存储器302,还可以进一步包括多媒体组件303、信息输入/信息输出(I/O)接口304以及通信组件305中的一者或多者。
其中,处理器301用于控制电子设备300的整体操作,以完成上述的数据库透明加密方法中的全部或部分步骤;存储器302用于存储各种类型的数据以支持处理器301所需执行的各种操作,这些数据例如可以包括用于在该电子设备300上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如以重写规则、视图、解密函数等数据。该存储器302可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,SRAM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、只读存储器(Read-Only Memory,ROM)、磁存储器、快闪存储器、磁盘或光盘中的一者或多者。
多媒体组件303可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器302或通过通信组件305发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口304为处理器301和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件305用于电子设备300与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件305可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备300可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例给出的密文数据的访问方法。
在另一示例性实施例中,还提供了一种存储有程序指令的计算机可读存储介质,该程序指令将在被处理器执行时实现与该程序指令对应的操作。例如,该计算机可读存储介质可以为上述包括程序指令的存储器302,上述程序指令具体为可由电子设备300的处理器301在执行时完成上述实施例给出的数据库透明加密方法。
本文中应用了具体个例对本公开的原理及实施方式进行了阐述,且各个实施例间为递进关系,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,可参见对应的方法部分说明。以上实施例的说明只是用于帮助理解本公开的方法及其核心思想。对于本技术领域的普通技术人员来说,在不脱离本公开原理的前提下,还可以对本公开进行若干改进和修饰,这些改进和修饰也落入本公开权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种数据库透明加密方法,其特征在于,包括:
编写增、删和改三种操作的重写规则,并将所述重写规则置于SQL网关,以通过所述SQL网关实现用户对密文数据库进行的增、删和改三种操作;
创建与密文数据原表同名、同字段的视图,并将所述密文数据原表中的每个密文字段通过解密函数映射至所述视图中的对应字段,以通过所述视图实现用户对所述密文数据库进行的查询操作。
2.根据权利要求1所述的数据库透明加密方法,其特征在于,还包括:
接收用户访问所述密文数据库时发来的SQL命令;
确定所述SQL命令的操作类型;
当所述SQL命令的操作类型为增、删、改三种操作的任一种时,利用所述重写规则重写所述SQL命令,得到重写SQL命令,以使所述密文数据库根据所述重写SQL命令调用相应的加密或解密函数完成相应的增加、删除或修改操作;
当所述SQL命令的操作类型为查询操作时,确定所述SQL命令中的目标字段在所述视图中的位置,并根据所述视图与所述密文数据原表间的映射关系将所述密文数据原表中的目标密文字段解密为目标明文数据。
3.根据权利要求2所述的数据库透明加密方法,其特征在于,确定所述SQL命令的操作类型,包括:
分别使用不同操作类型的关键字匹配所述SQL命令中包含的字符串,得到匹配关键字;
将所述匹配关键字所属的访问类型确定为所述SQL命令的操作类型。
4.根据权利要求3所述的数据库透明加密方法,其特征在于,分别使用不同操作类型的关键字匹配所述SQL命令中包含的字符串,包括:
使用与所述查询操作对应的关键字匹配所述SQL命令中包含的字符串;
当所述SQL命令中包含的字符串不匹配于所述查询操作对应的关键字时,分别使用增、删、改对应的关键词匹配所述SQL命令中包含的字符串。
5.根据权利要求1至4任一项所述的数据库透明加密方法,其特征在于,还包括:
根据所述密文数据原表构建密文索引,并利用所述密文索引加速增、删、改和查询操作。
6.一种数据库透明加密装置,其特征在于,包括:
增删改操作处理单元,用于编写增、删和改三种操作的重写规则,并将所述重写规则置于SQL网关,以通过所述SQL网关实现用户对密文数据库进行的增、删和改三种操作;
查询操作处理单元,用于创建与密文数据原表同名、同字段的视图,并将所述密文数据原表中的每个密文字段通过解密函数映射至所述视图中的对应字段,以通过所述视图实现用户对所述密文数据库进行的查询操作。
7.根据权利要求6所述的数据库透明加密装置,其特征在于,还包括:
命令接收单元,用于接收用户访问所述密文数据库时发来的SQL命令;
操作类型确定单元,用于确定所述SQL命令的操作类型;
非查询操作处理单元,用于当所述SQL命令的操作类型为增、删、改三种操作的任一种时,利用所述重写规则重写所述SQL命令,得到重写SQL命令,以使所述密文数据库根据所述重写SQL命令调用相应的加密或解密函数完成相应的增加、删除或修改操作;
查询操作处理单元,用于当所述SQL命令的操作类型为查询操作时,确定所述SQL命令中的目标字段在所述视图中的位置,并根据所述视图与所述密文数据原表间的映射关系将所述密文数据原表中的目标密文字段解密为目标明文数据。
8.根据权利要求7所述的数据库透明加密装置,其特征在于,所述操作类型确定单元包括:
主动匹配子单元,用于分别使用不同操作类型的关键字匹配所述SQL命令中包含的字符串,得到匹配关键字;
操作类型确定子单元,用于将所述匹配关键字所属的访问类型确定为所述SQL命令的操作类型。
9.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1至5任一项所述的密文数据的访问方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至5任一项所述的密文数据的访问方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910119874.1A CN109784081A (zh) | 2019-02-18 | 2019-02-18 | 一种数据库透明加密方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910119874.1A CN109784081A (zh) | 2019-02-18 | 2019-02-18 | 一种数据库透明加密方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109784081A true CN109784081A (zh) | 2019-05-21 |
Family
ID=66503262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910119874.1A Pending CN109784081A (zh) | 2019-02-18 | 2019-02-18 | 一种数据库透明加密方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109784081A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112000984A (zh) * | 2020-08-24 | 2020-11-27 | 杭州安恒信息技术股份有限公司 | 一种数据泄露检测方法、装置、设备及可读存储介质 |
CN112487415A (zh) * | 2020-12-09 | 2021-03-12 | 华控清交信息科技(北京)有限公司 | 计算任务的安全性检测方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101504668A (zh) * | 2009-03-24 | 2009-08-12 | 北京理工大学 | 一种支持密文索引的数据库透明加密方法 |
CN104881280A (zh) * | 2015-05-13 | 2015-09-02 | 南京邮电大学 | 一种支持多查询的密文数据库中间件的设计方法 |
CN106934030A (zh) * | 2016-12-08 | 2017-07-07 | 戴林 | 一种面向数据库加密的密文索引方法和库内加密系统 |
-
2019
- 2019-02-18 CN CN201910119874.1A patent/CN109784081A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101504668A (zh) * | 2009-03-24 | 2009-08-12 | 北京理工大学 | 一种支持密文索引的数据库透明加密方法 |
CN104881280A (zh) * | 2015-05-13 | 2015-09-02 | 南京邮电大学 | 一种支持多查询的密文数据库中间件的设计方法 |
CN106934030A (zh) * | 2016-12-08 | 2017-07-07 | 戴林 | 一种面向数据库加密的密文索引方法和库内加密系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112000984A (zh) * | 2020-08-24 | 2020-11-27 | 杭州安恒信息技术股份有限公司 | 一种数据泄露检测方法、装置、设备及可读存储介质 |
CN112487415A (zh) * | 2020-12-09 | 2021-03-12 | 华控清交信息科技(北京)有限公司 | 计算任务的安全性检测方法及装置 |
CN112487415B (zh) * | 2020-12-09 | 2023-10-03 | 华控清交信息科技(北京)有限公司 | 计算任务的安全性检测方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101643002B1 (ko) | 상황 인식 입력 데이터를 제공하기 위한 방법 및 장치 | |
CN105229634B (zh) | 数据迁移框架 | |
CN105608088B (zh) | 一种基于配置文件的数据库自动创建与数据动态记录方法 | |
CN108304463A (zh) | 一种用于数据库的数据管理方法及其数据库应用组件 | |
CN106104514B (zh) | 加速访问对象存储库中的对象的方法、系统及介质 | |
CN108874866A (zh) | 数据导入管理方法、装置、移动终端和存储介质 | |
CN110378593A (zh) | 关于合规策略更新的应用的通信状态 | |
KR20160114077A (ko) | 개인 식별 정보를 제거하기 위한 스크러버 | |
US8914428B2 (en) | System and method for maintaining a file system at a computing device | |
CN101727274A (zh) | 用于允许用户在便携式电子设备上访问企业数据的方法、系统和图形用户接口 | |
AU2020298056B2 (en) | Autolayout of visualizations based on graph data | |
CN105700819B (zh) | 用于网络数据存储的方法和系统 | |
CN109784081A (zh) | 一种数据库透明加密方法、装置、电子设备及存储介质 | |
CN108153812A (zh) | 数据通信的方法、装置、计算机设备及存储介质 | |
CN108153716A (zh) | 表单处理方法、装置、存储介质及电子设备 | |
KR20050041970A (ko) | 정보 처리 장치 및 정보 처리 방법, 컴퓨터 프로그램 및콘텐츠 열람 장치 | |
WO2019000698A1 (zh) | 生成sql语句的方法、系统、电子装置及可读存储介质 | |
CN107193910A (zh) | 一种应用于数据安全类产品的数据库防篡改方法及系统 | |
CN104731576A (zh) | 显示给定电源目标与硬件设计的层级结构的装置及方法 | |
CN114036538A (zh) | 一种基于虚拟块设备的数据库透明加解密实现方法及系统 | |
RU2679971C2 (ru) | Осуществление доступа к семантическому контенту в системе разработки | |
KR20080079346A (ko) | 맵 업데이트 시스템 및 방법, 방법 프로그램을 기록한저장매체, 사용자 단말기 | |
US20140075577A1 (en) | File security control system and method | |
JP2012008871A (ja) | 機器管理装置、機器管理方法、及び機器管理プログラム | |
CN106484480A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190521 |