基于Job的数据库表加解密方法、装置和实现装置与流程

文档序号:14677731发布日期:2018-06-12 21:44阅读:283来源:国知局
基于Job的数据库表加解密方法、装置和实现装置与流程

本发明涉及数据库技术领域,尤其是涉及一种基于Job的数据库表加解密方法、装置和实现装置。



背景技术:

对用户数据加密是常见的保证数据安全的手段之一,用户可以选择采用软件或硬件加密数据,其中软件加密可以通过数据库直接对数据进行加密处理。数据库加密系统主要由Web服务器和数据库组成,其中Web服务器的主要功能是处理用户与数据库的数据交互,而数据库则负责存储数据以及保护用户数据。

Oracle数据库是常用的数据库工具之一,其数据库加解密的整体流程描述如下:首先用户通过Web界面配置需要加解密的数据库表以及密钥等信息;其次用户通过Web服务器向Oracle数据库下发加解密的命令;然后Oracle数据库检查数据库表是否满足加解密的条件,若满足条件则直接对数据加解密,否则直接判断为加解密失败;最后Oracle数据库通过Web服务器返回加解密结果。

上述数据库加解密是同步的,即需要等待加解密一张数据库表完成后才能继续加解密其它的数据库表,导致不能充分利用数据库的性能,尤其对分布式数据库来说更是浪费资源。



技术实现要素:

有鉴于此,本发明的目的在于提供一种基于Job的数据库表加解密方法、装置和实现装置,可以并发处理加解密数据库表,减少加解密时间,提高数据库加解密系统的整体性能。

第一方面,本发明实施例提供了一种基于Job的数据库表加解密方法,包括:当接收到加解密命令时,判断当前的数据库表是否满足加解密条件;如果是,为数据库表分配一个Job以执行加解密处理。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,还包括:当数据库表满足加解密条件时,返回校验成功结果;当数据库表不满足加解密条件时,返回校验失败结果。

结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,还包括:接收用户通过Web服务器配置并下发的加解密命令;加解密命令包括数据库表和加解密信息。

结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,还包括:记录Job执行数据库表加解密处理的进度。

结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,还包括:当接收到进度查询指令时,反馈数据库表加解密处理的进度。

第二方面,本发明实施例还提供一种基于Job的数据库表加解密装置,包括:判断模块,用于当接收到加解密命令时,判断当前的数据库表是否满足加解密条件;加解密模块,用于如果是,为数据库表分配一个Job以执行加解密处理。

结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,还包括:接收模块,用于接收用户通过Web服务器配置并下发的加解密命令;加解密命令包括数据库表和加解密信息。

结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,还包括:记录模块,用于记录Job执行数据库表加解密处理的进度;查询模块,用于当接收到进度查询指令时,反馈数据库表加解密处理的进度。

第三方面,本发明实施例还提供一种基于Job的数据库表加解密的实现装置,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述方法。

第四方面,本发明实施例还提供了一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述方法。

本发明实施例带来了以下有益效果:

本发明实施例提供的基于Job的数据库表加解密方法、装置和实现装置,为数据库表分配Job以执行加解密处理,通过数据库的Job机制并发处理加解密数据库表,可以减少加解密时间,提高数据库加解密系统的整体性能。

本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。

为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的Oracle数据库加解密的流程示意图;

图2为本发明实施例提供的一种基于Job的数据库表加解密方法的流程图;

图3为本发明实施例提供的一种基于Job的数据库表加解密方法的流程图;

图4为本发明实施例提供的一种基于Job的数据库表加解密装置的结构示意图;

图5为本发明实施例提供的一种基于Job的数据库表加解密装置的结构示意图;

图6为本发明实施例提供的一种基于Job的数据库表加解密装置的结构示意图;

图7为本发明实施例提供的一种基于Job的数据库表加解密的实现装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

传统的数据库加解密系统是串行处理每个数据库表,只有在一张数据库表加解密完成后才能继续加解密其它的数据库表,即使分布式数据库系统也是先处理一个数据库完成后,才会继续处理其它数据库。参见图1所示的Oracle数据库加解密的流程示意图,包括以下步骤:

步骤S102,通过Web界面配置需要加解密的数据库表以及密钥等信息。

步骤S104,通过Web服务器向Oracle数据库下发加解密的命令。

步骤S106,Oracle数据库检查数据库表是否满足加解密的条件。如果是,执行步骤S108;如果否,执行步骤S110。

步骤S108,对数据加解密。

步骤S110,判断加解密失败,并返回加解密失败结果。

步骤S112,Oracle数据库通过Web服务器返回加解密结果。

基于此,本发明实施例提供的一种基于Job的数据库表加解密方法、装置和实现装置,由于加解密不同的数据库表是相互独立的,并且互不影响,因此可以同时加解密数据库表。通过数据库的Job机制能够并发处理加解密数据库表,减少加解密时间,提高数据库加解密系统的整体性能。

为便于对本实施例进行理解,首先对本发明实施例所公开的一种基于Job的数据库表加解密方法进行详细介绍。

实施例1

本发明实施例提供了一种基于Job的数据库表加解密方法,参见图2所示的一种基于Job的数据库表加解密方法的流程图,该方法包括如下步骤:

步骤S202,当接收到加解密命令时,判断当前的数据库表是否满足加解密条件。如果是,执行步骤S204;如果否,执行步骤S206。

本实施例提供的方法应用于支持Job机制的数据库,例如SQL Server、Oracle以及MySQL等。用户可以通过Web页面进行加解密命令的配置,再由Web服务器将该加解密命令下发至数据库。其中加解密命令包括数据库表和加解密信息,该加解密信息可以包括密钥等。

在数据库接收到加解密命令时,需要先判断该数据库表是否符合加解密的条件,由于有的数据库表列类型、索引等不支持加密,从而可以排除上述数据库表进入加解密流程。在数据库表满足加解密条件时,

步骤S204,为数据库表分配一个Job以执行加解密处理。

在数据库表满足加解密条件时,数据库为该数据库表分配一个Job执行加解密。由于加解密不同的数据库表是相互独立的,因此可以并发加解密数据库表,数据库中的Job机制可以胜任同时加解密数据库表的任务,即并发处理加解密数据库表。

可以为每个加解密数据库表的任务分配一个Job,即一个Job加解密一张数据库表。每个Job可以相互独立运行,互不影响,恰好符合加解密数据库表独立性的特点。

步骤S206,返回加解密失败结果。

数据库可以将加解密失败结果返回给Web服务器,通知用户加解密失败。

本发明实施例提供的上述方法,为数据库表分配Job以执行加解密处理,通过数据库的Job机制并发处理加解密数据库表,可以减少加解密时间,提高数据库加解密系统的整体性能。

在上述步骤S202判断当前的数据库表是否满足加解密条件时,如果数据库表满足加解密条件时,则返回校验成功结果;如果数据库表不满足加解密条件,则返回校验失败结果。

考虑到通过数据库的Job机制可以同时加解密多张数据库表,数据库需要具备查询加解密进度的机制。上述方法还包括:记录Job执行数据库表加解密处理的进度。数据库将每个Job的加解密进度记录到数据库表中,用户可以通过Web服务器方便地查看每个数据库表的加解密进度。其中,当接收到进度查询指令时,反馈数据库表加解密处理的进度,即将进度返回至Web服务器。

实施例2

本实施例提供了一种基于Job的数据库表加解密方法,以Oracle数据库同时进行多个数据库表的加解密为例进行说明。参见图3所示的一种基于Job的数据库表加解密方法的流程图,包括如下步骤:

步骤S302,通过Web界面配置需要加解密的多个数据库表以及密钥等信息。

步骤S304,通过Web服务器向Oracle数据库下发上述加解密的命令。

步骤S306,Oracle数据库校验上述每个数据库表是否满足加解密的条件,并返回校验结果。

在进行数据库表校验后,返回校验结果,当不满足条件时结束该数据库表的流程返回。

步骤S308,Oracle数据库为每个满足加解密条件的数据库表分别分配一个Job。

在同时进行多个数据库表的加解密,不需要在等待一个数据库表加解密结束后再执行另一个数据库表的加解密,而是为每个数据库表分别分配一个Job,即一个Job加解密一张数据库表。由于Job机制能够并发执行,从而使数据库表的加解密并发执行。

步骤S310,上述Job并发处理处理加解密数据库表。

步骤S312,Oracle数据库将加解密进度写入到数据库表中。

Oracle数据库记录加解密进度,用户可以通过Web服务器方便地查看每个数据库表的加解密进度。

步骤S314,当接收到Web定时发送的进度查询指令时,返回数据库表加解密进度。

本发明实施例提供的上述方法,为每个数据库表分别分配Job以执行加解密处理,通过数据库的Job机制并发处理加解密数据库表,可以减少加解密时间,提高数据库加解密系统的整体性能;且具有进度查询机制,可以方便地查看每个数据库表的加解密进度。

实施例3

本发明实施例提供了一种基于Job的数据库表加解密装置,参见图4所示的基于Job的数据库表加解密装置的结构示意图,包括如下模块:

判断模块41,用于当接收到加解密命令时,判断当前的数据库表是否满足加解密条件;

加解密模块42,用于如果是,为数据库表分配一个Job以执行加解密处理。

参见图5所示的基于Job的数据库表加解密装置的结构示意图,上述装置还包括:

接收模块51,用于接收用户通过Web服务器配置并下发的加解密命令;加解密命令包括数据库表和加解密信息。

参见图6所示的基于Job的数据库表加解密装置的结构示意图,上述装置还包括:

记录模块61,用于记录Job执行数据库表加解密处理的进度;

查询模块62,用于当接收到进度查询指令时,反馈数据库表加解密处理的进度。

本发明实施例提供的基于Job的数据库表加解密装置,与上述实施例提供的基于Job的数据库表加解密方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。

本发明实施例还提供了一种基于Job的数据库表加解密的实现装置,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述实施例提供的方法。参见图7所示的一种基于Job的数据库表加解密的实现装置的结构示意图,具体包括处理器70,存储器71,总线72和通信接口73,处理器70、通信接口73和存储器71通过总线72连接;处理器70用于执行存储器71中存储的可执行模块,例如计算机程序。

其中,存储器71可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口73(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。

总线72可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

其中,存储器71用于存储程序,处理器70在接收到执行指令后,执行程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器70中,或者由处理器70实现。

处理器70可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器70中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器70可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器71,处理器70读取存储器71中的信息,结合其硬件完成上述方法的步骤。

本发明实施例还提供了一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述实施例提供的方法。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序,也不能理解为指示或暗示相对重要性。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1