首页> 中国专利> 一种针对存储过程和函数的动态脱敏方法和装置

一种针对存储过程和函数的动态脱敏方法和装置

摘要

本发明涉及数据处理领域,公开了一种针对存储过程和函数的动态脱敏方法和装置。方法包括:获取存储过程或函数内的语句;对脱敏规则存储过程或脱敏规则函数内的语句进行扫描,确定敏感字段;对包含脱敏规则敏感字段的语句进行分析,确定脱敏规则敏感字段的值是否赋给传出参数;若脱敏规则敏感字段的值赋给传出参数,则对脱敏规则传出参数的值进行动态脱敏,由此可以实现对脱敏规则存储过程和脱敏规则函数进行动态脱敏。

著录项

  • 公开/公告号CN112632104A

    专利类型发明专利

  • 公开/公告日2021-04-09

    原文格式PDF

  • 申请/专利权人 深圳昂楷科技有限公司;

    申请/专利号CN202011577834.0

  • 发明设计人 周引玉;官文兵;刘永波;

    申请日2020-12-28

  • 分类号G06F16/242(20190101);G06F16/22(20190101);G06F16/2455(20190101);G06F21/62(20130101);

  • 代理机构44372 深圳市六加知识产权代理有限公司;

  • 代理人孟丽平

  • 地址 518000 广东省深圳市南山区南头关口二路智恒战略性新兴产业园30栋501、505室

  • 入库时间 2023-06-19 10:32:14

说明书

技术领域

本发明涉及数据处理领域,特别是涉及一种针对存储过程和函数的动态脱敏方法和装置。

背景技术

随着互联网、大数据等新兴技术的飞速发展,数据集中存储已成为趋势,越来越多的应用采用连接数据中心或者数据共享层的方式来开展业务,这使得采用“先脱敏-后分发”方式的静态数据脱敏产品往往无法满足用户“兼顾实时性和安全性”的需求,动态数据脱敏应运而生。目前,市面上主流的动态脱敏技术路线有“结果集解析并改写”和“SQL语句改写”两种。

基于结果集脱敏,需要提前获取或保存表结构,不改写发给数据库的语句,等数据库返回结果后,再判断其中哪些需要脱敏,并于产品位置逐条修改。由于存储过程或函数的SQL语句都封装在数据包里面,通过传出参数输出结果,无法识别结果是否属于敏感字段的值,目前还不能做到对存储过程或函数动态脱敏。

基于语句改写脱敏,通过对敏感字段采用函数运算的方式,让数据库自行返回改写后不包含敏感数据的结果,但该方式不能对存储过程或函数的语句进行改写。

发明内容

基于此,有必要针对上述技术问题,提供一种针对存储过程和函数的动态脱敏方法和装置,能够实现对存储过程或函数动态脱敏。

第一方面,本发明实施例提供了一种针对存储过程和函数的动态脱敏方法,所述方法包括:

获取存储过程或函数内的语句;

对所述存储过程或所述函数内的语句进行扫描,确定敏感字段;

对包含所述敏感字段的语句进行分析,确定所述敏感字段的值是否赋给传出参数;

若所述敏感字段的值赋给传出参数,则对所述传出参数的值进行动态脱敏。

在一些实施例中,所述对所述存储过程或所述函数内的语句进行扫描,确定敏感字段,包括:

获取敏感规则基础表;

基于所述敏感规则基础表对所述存储过程或所述函数内的语句进行扫描,以确定敏感字段。

在一些实施例中,所述敏感字段的值赋给传出参数,则对所述传出参数的值进行动态脱敏之前,所述方法还包括:

将所述存储过程或函数、所述传出参数以及敏感字段名称保存至数据表中。

在一些实施例中,所述敏感字段的值赋给传出参数,则对所述传出参数的值进行动态脱敏,包括:

若所述敏感字段的值赋给传出参数,则执行所述存储过程或函数;

根据所述数据表中的敏感字段名称从所述敏感规则基础表中获取脱敏规则;

基于所述脱敏规则对所述传出参数的值进行动态脱敏。

在一些实施例中,所述方法还包括:

若所述敏感字段的值没有赋给传出参数,则不对所述存储过程或函数内的语句进行动态脱敏。

第二方面,本发明实施例还提供了一种针对存储过程和函数的动态脱敏装置,包括:

获取模块,用于获取存储过程或函数内的语句;

扫描模块,用于对所述存储过程或所述函数内的语句进行扫描,确定敏感字段;

分析模块,用于对包含所述敏感字段的语句进行分析,确定所述敏感字段的值是否赋给传出参数;

脱敏模块,用于若所述敏感字段的值赋给传出参数,则对所述传出参数的值进行动态脱敏。

在一些实施例中,所述脱敏模块具体用于:

若所述敏感字段的值赋给传出参数,则执行所述存储过程或函数;

根据所述数据表中的敏感字段名称从所述敏感规则基础表中获取脱敏规则;

基于所述脱敏规则对所述传出参数的值进行动态脱敏。

第三方面,本发明实施例还提供了一种代理服务器,包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令

被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述针对存储过程和函数的动态脱敏方法。

第四方面,本发明实施例还提供了一种针对存储过程和函数的动态脱敏系统,包括代理服务器、客户端和数据库服务器,所述代理服务器分别与所述客户端和所述数据库服务器通信连接,

所述代理服务器用于从所述数据库服务器中获取存储过程或函数内的语句进行分析和脱敏,并将脱敏结果发送给所述客户端。

第五方面,本发明实施例还提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,当所述计算机可执行指令被处理器所执行时,使所述处理器执行上述针对存储过程和函数的动态脱敏方法。

与现有技术相比,本发明的有益效果是:区别于现有技术的情况,本发明实施例中的针对存储过程和函数的动态脱敏方法和装置,通过获取存储过程或函数内的语句,并对所述存储过程或所述函数内的语句进行扫描,确定敏感字段,接着对包含所述敏感字段的语句进行分析,确定所述敏感字段的值是否赋给传出参数,若所述敏感字段的值赋给传出参数,则对所述传出参数的值进行动态脱敏,通过上述方式可以实现快速对所述存储过程和所述函数进行动态脱敏。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是本发明一个实施例中针对存储过程和函数的动态脱敏方法的应用场景示意图;

图2是本发明一个实施例中针对存储过程和函数的动态脱敏方法的流程示意图;

图3是本发明一个实施例中动态脱敏的流程示意图;

图4是本发明一个实施例中针对存储过程和函数的动态脱敏装置的结构示意图;

图5是本发明一个实施例中代理服务器的硬件结构示意图。

具体实施方式

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

需要说明的是,如果不冲突,本发明实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。再者,本发明所采用的“第一”、“第二”、“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。

本发明实施例提供的针对存储过程和函数的动态脱敏方法适用于图1所示的应用场景中,在本发明实施例中,所述应用场景为针对存储过程和函数的动态脱敏系统,该系统包括代理服务器10、客户端20以及数据库服务器30。所述代理服务器10分别与所述客户端20和所述数据库服务器30通信连接。当存在多个客户端、多个代理服务器和多个数据块服务器时,还可以通过交换机连接。具体地,所述代理服务器通过交换机分别与所述客户端和所述数据库服务器通信连接。所述代理服务器10用于从所述数据库服务器30中获取存储过程或函数内的语句进行分析和脱敏,并将脱敏结果发送给所述客户端20。

代理服务器和数据库服务器可以是一台服务器,例如机架式服务器、刀片式服务器、塔式服务器或者机柜式服务器等,也可以是由若干台服务器组成的服务器集群,或者是一个云计算服务中心,亦或者是一体机加终端。

需要说明的是,本发明实施例提供的针对存储过程和函数的动态脱敏方法还可以进一步地拓展到其他合适的应用环境中,而不限于图1所示的应用场景。在实际的应用过程中,该应用环境还可以包括更多的客户端、代理服务器和数据库服务器。

如图2所示,本发明实施例提供了一种针对存储过程和函数的动态脱敏方法,所述方法由代理服务器执行,所述方法包括:

步骤202,获取存储过程或函数内的语句。

在本发明实施例中,存储过程是指在大型数据库系统中,一组为了完成特定功能的SQL语句集,所述SQL语句集存储在数据库服务器的数据库中。具体地,所述代理服务器从所述数据库服务器的数据库中获取存储过程或函数内的语句。

步骤204,对所述存储过程或所述函数内的语句进行扫描,确定敏感字段。

具体地,敏感字段例如可以为身份证号、车牌号或者手机号码等。通过对存储过程或函数内的语句进行扫描,从而确定敏感字段。

在其中一些实施例中,作为步骤204的一种实现方式,所述方法还包括:获取敏感规则基础表;基于所述敏感规则基础表对所述存储过程或所述函数内的语句进行扫描,以确定敏感字段。

在本发明实施例中,敏感规则基础表包含了各种敏感数据类型,包括但不限于上述提及到的身份证号、车牌号或者手机号码等,还可以包括地址信息。敏感字段是基于所述敏感规则基础表确定的,所述敏感规则基础表预先存储在代理服务器的数据库中。具体地,代理服务器从数据库中获取敏感规则基础表,然后基于获取到的所述敏感规则基础表对存储过程或者函数内的语句进行扫描,解析存储过程或者函数内的语句是否涉及到敏感规则基础表,即判断所述存储过程或函数内的语句是否与所述敏感规则基础表匹配,从而确定敏感字段。进一步地,若所述存储过程或者函数内的语句与所述敏感规则基础表匹配,则确定所述存储过程或者函数内的语句存在敏感字段,反之,若所述存储过程或者函数内的语句与所述敏感规则基础表不匹配,则认为所述存储过程或者函数内的语句不存在敏感字段。

步骤206,对包含所述敏感字段的语句进行分析,确定所述敏感字段的值是否赋给传出参数。

在本发明实施例中,传出参数用于数据的传出。在确定了敏感字段后,所述代理服务器对包含所述敏感字段的语句进行分析,判断所述敏感字段的值是否赋给了存储过程的传出参数。

步骤208,若所述敏感字段的值赋给传出参数,则对所述传出参数的值进行动态脱敏。

在本发明实施例中,动态脱敏是针对敏感数据进行实时数据抽取、数据漂白和动态掩码的脱敏技术。在对所述传出参数的值进行动态脱敏之前,所述代理服务器将所述存储过程或者函数、所述传出参数以及敏感字段名称保存至所述代理服务器的数据表中。进一步地,当所述敏感数据的值赋给了传出参数,意味着该敏感数据会泄露,因此所述代理服务器对所述传出参数的值进行动态脱敏,从而保证数据的安全。

在其中一些实施例中,作为步骤208的一种实现方式,如图3所示,所述方法包括:

步骤302,若所述敏感字段的值赋给传出参数,则执行所述存储过程或函数。

在本发明实施例中,执行存储过程或函数可以理解为执行存储过程中的语句和函数内的语句,当所述敏感字段的值赋给了传出参数时,所述代理服务器通过程序指令执行所述存储过程中的语句和函数内语句。

步骤304,根据所述数据表中的敏感字段名称从所述敏感规则基础表中获取脱敏规则。

在本发明实施例中,敏感规则基础表中包含了脱敏规则,脱敏规则和敏感字段相对应,即每个字段都有对应的脱敏规则,所述代理服务器根据所述数据表中的敏感字段名称从所述敏感规则基础表中获取脱敏规则。

步骤306,基于所述脱敏规则对所述传出参数的值进行动态脱敏。

具体地,当所述代理服务器根据敏感字段获取到脱敏规则后,即可基于所述脱敏规则对所述传出参数的值进行动态脱敏,由此能够保证数据的安全。

在本发明实施例中,通过获取存储过程或函数内的语句,并对所述存储过程或所述函数内的语句进行扫描,确定敏感字段,接着对包含所述敏感字段的语句进行分析,确定所述敏感字段的值是否赋给传出参数,若所述敏感字段的值赋给传出参数,则对所述传出参数的值进行动态脱敏,通过上述方式可以快速对所述存储过程和所述函数进行动态脱敏的同时,保证数据的安全。

在其他一些实施例中,所述方法还包括:若所述敏感字段的值没有赋给传出参数,则不对所述存储过程或函数内的语句进行动态脱敏。

在本发明实施例中,若所述敏感字段的值没有赋给传出参数,则意味着数据没有传出去,则不对所述存储过程或函数内的语句进行动态脱敏。

在其他一些实施例中,所述方法还包括:若所述敏感字段或所述函数内的语句没有包含敏感字段,则不对所述敏感过程或函数内的语句进行动态脱敏。

具体地,若所述敏感字段或所述函数内的语句没有包含敏感字段,就没有必要对所述敏感过程或函数内的语句进行动态脱敏。

相应地,本发明实施例还提供了一种针对存储过程和函数的动态脱敏装置400,如图4所示,所述装置包括:

获取模块402,用于获取存储过程或函数内的语句;

扫描模块404,用于对所述存储过程或所述函数内的语句进行扫描,确定敏感字段;

分析模块406,用于对包含所述敏感字段的语句进行分析,确定所述敏感字段的值是否赋给传出参数;

脱敏模块408,用于若所述敏感字段的值赋给传出参数,则对所述传出参数的值进行动态脱敏。

在本发明实施例中,通过获取模块获取存储过程或函数内的语句,接着通过扫描模块对所述存储过程或函数内的语句进行扫描,确定敏感字段,进一步地,通过分析模块对包含所述敏感字段的语句进行分析,确定所述敏感字段的值是否赋给传出参数,若所述敏感字段的值赋给传出参数,则通过脱敏模块对所述传出参数的值进行动态脱敏,由此可以快速对所述存储过程和所述函数进行动态脱敏的同时,保证数据的安全。

可选的,在装置的其他实施例中,请参照图4,装置400还包括:

保存模块410,将所述存储过程或函数、所述传出参数以及敏感字段名称保存至数据表中。

可选的,在装置的其他实施例中,扫描模块404具体用于:

获取敏感规则基础表;

基于所述敏感规则基础表对所述存储过程或所述函数内的语句进行扫描,以确定敏感字段。

可选的,在装置的其他实施例中,所述脱敏模块408具体用于:

若所述敏感字段的值赋给传出参数,则执行所述存储过程或函数;

根据所述数据表中的敏感字段名称从所述敏感规则基础表中获取脱敏规则;

基于所述脱敏规则对所述传出参数的值进行动态脱敏。

可选的,在装置的其他实施例中,若所述敏感字段的值没有赋给传出参数,则不对所述存储过程或函数内的语句进行动态脱敏。

需要说明的是,上述针对存储过程和函数的动态脱敏装置可执行本发明实施例所提供的针对存储过程和函数的动态脱敏方法,具备执行方法响应的功能模块和有益效果。未在针对存储过程和函数的动态脱敏装置实施例中详尽描述的技术细节,可参见本发明实施例提供的针对存储过程和函数的动态脱敏方法。

图5是本发明实施例提供的代理服务器的硬件结构示意图,如图5所示,代理服务器包括:

一个或多个处理器502以及存储器504,图5中以一个处理器502为例。

处理器502和存储器504可以通过总线或者其他方式连接,图5中以通过总线连接为例。

存储器504作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的针对存储过程和函数的动态脱敏方法对应的程序指令/模块。处理器502通过运行存储在存储器504中的非易失性软件程序、指令以及模块,从而执行代理服务器的各种功能应用以及数据处理,即实现上述实施例中的针对存储过程和函数的动态脱敏方法。

存储器504可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据针对存储过程和函数的动态脱敏装置使用所创建的数据等。此外,存储器504可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器504可选包括相对于处理器502远程设置的存储器,这些远程存储器可以通过网络连接至针对存储过程和函数的动态脱敏装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

本发明实施例还提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或者多个处理器执行时,可使得上述一个或者多个处理器可执行上述任意方法实施例中的针对存储过程和函数的动态脱敏方法。

本发明实施例中的代理服务器以多种形式存在,包括但不限于:

(1)塔式服务器

一般的塔式服务器机箱和我们常用的PC机箱差不多,而大型的塔式机箱就要粗大很多,总的来说外形尺寸没有固定标准。

(2)机架式服务器

机架式服务器是由于满足企业的密集部署,形成的以19英寸机架作为标准宽度的服务器类型,高度则从1U到数U。将服务器放置到机架上,并不仅仅有利于日常的维护及管理,也可能避免意想不到的故障。首先,放置服务器不占用过多空间。机架服务器整齐地排放在机架中,不会浪费空间。其次,连接线等也能够整齐地收放到机架里。电源线和LAN线等全都能在机柜中布好线,可以减少堆积在地面上的连接线,从而防止脚踢掉电线等事故的发生。规定的尺寸是服务器的宽(48.26cm=19英寸)与高(4.445cm的倍数)。由于宽为19英寸,所以有时也将满足这一规定的机架称为“19英寸机架”。

(3)刀片式服务器

刀片服务器是一种HAHD(High Availability High Density,高可用高密度)的低成本服务器平台,是专门为特殊应用行业和高密度计算机环境设计的,其中每一块“刀片”实际上就是一块系统母板,类似于一个个独立的服务器。在这种模式下,每一个母板运行自己的系统,服务于指定的不同用户群,相互之间没有关联。不过可以使用系统软件将这些母板集合成一个服务器集群。在集群模式下,所有的母板可以连接起来提供高速的网络环境,可以共享资源,为相同的用户群服务。

(4)云服务器

云服务器(Elastic Compute Service,ECS)是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效,用户无需提前购买硬件,即可迅速创建或释放任意多台云服务器。云服务器的分布式存储用于将大量服务器整合为一台超级计算机,提供大量的数据存储和处理服务。分布式文件系统、分布式数据库允许访问共同存储资源,实现应用数据文件的IO共享。虚拟机可以突破单个物理机的限制,动态的资源调整与分配消除服务器及存储设备的单点故障,实现高可用性。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号