CN109426725B - 数据脱敏方法、设备及计算机可读存储介质 - Google Patents

数据脱敏方法、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN109426725B
CN109426725B CN201710726993.4A CN201710726993A CN109426725B CN 109426725 B CN109426725 B CN 109426725B CN 201710726993 A CN201710726993 A CN 201710726993A CN 109426725 B CN109426725 B CN 109426725B
Authority
CN
China
Prior art keywords
desensitization
data
inherited
rule
desensitized
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.)
Active
Application number
CN201710726993.4A
Other languages
English (en)
Other versions
CN109426725A (zh
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201710726993.4A priority Critical patent/CN109426725B/zh
Publication of CN109426725A publication Critical patent/CN109426725A/zh
Application granted granted Critical
Publication of CN109426725B publication Critical patent/CN109426725B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据脱敏方法、设备及计算机可读存储介质,所述数据脱敏方法包括:对待脱敏数据进行解析并生成解析结果;根据所述解析结果,确定脱敏模式,并确定与所述脱敏模式对应的脱敏规则;根据确定的所述脱敏规则对待脱敏数据进行脱敏。本方案根据待脱敏数据的不同需求,确定对应的脱敏规则对其进行脱敏,如继承脱敏规则或上移脱敏规则,当为继承脱敏规则时,则根据继承脱敏规则对待脱敏数据进行脱敏,脱敏后的数据继承待脱敏数据的脱敏规则,得到脱敏前的原始数据,确保数据应用的准确性;当为上移脱敏规则时,则根据上移脱敏规则在生成显示数据后对待脱敏数据进行脱敏,使脱敏后的显示数据更准确。

Description

数据脱敏方法、设备及计算机可读存储介质
技术领域
本发明主要涉及大数据技术领域,具体地说,涉及一种数据脱敏方法、设备及计算机可读存储介质。
背景技术
Spark是一种快速、通用的大数据计算框架,SparkSQL作为Spark的一部分,主要用于结构化数据处理和对Spark数据执行类SQL的查询,是一种通过解析标准SQL转化成具体作业运行在Spark集群上的交互式查询系统。用户可以使用JDBC的方式连接该服务,输入一个标准SQL即可返回查询结果,从而达到了与关系型数据库同样的效果。
然而随着数据的爆发式增长与大数据技术的广泛应用,数据安全性已经成为大数据领域的重要问题,大数据安全技术也随之快速发展,其中数据脱敏是大数据安全技术之一,数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护,例如:大数据系统中某些敏感数据如电话号码作为隐私数据,在某些用户查询出来时要显示为138********,而不是全部字段。其中哪些敏感信息(例如姓名、电话号码、身份信息、账户信息等),通过什么规则(例如替换、变形、加密等)进行脱敏都是策略可配置的。具体实现上数据脱敏划分为动态数据脱敏(DDM)跟静态数据脱敏(SDM),主要区别是:是否在使用敏感数据当时进行脱,以下数据脱敏都是指动态数据脱敏(DDM)。
SparkSQL的数据脱敏是指在给用户提供方便快捷的交互式查询前提下,当访问一些敏感数据时,我们立即进行不同级别的数据脱敏。
现有的数据安全脱敏方案是采用如下方案:
SparkSQL目前不支持数据脱敏功能,可以借鉴大数据领域Hive(数据仓库工具)数据脱敏的技术实现,以Hive为例。Hive通过遍历AST树(抽象语法树),根据TOKEN标识来判断是否为一个TABREF,如果是则解析该节点并且通过表名、数据库名向脱敏策略平台发起请求,脱敏策略平台返回该表对应的策略,Hive取到策略对该表生成一个子查询,然后根据标准SQL字符串表的关键字对应的STARTINDEX跟STOPINDEX将原始的SQL替换重写生成一个新的标准SQL,最终解析器将重新解析新的SQL并且生成作业提交到集群中运行。
上述方案的主要缺点是:
1、脱敏规则不能被继承,导致用户在抽取表时抽取的数据不是原始数据而是脱敏过的数据:当用户通过CTAS、INSERT INTO TABLE SELECT或INSERT OVERWRITE TABLESELECT的方式新建一张表B把表A数据抽取到表B中时,B表中存储的是脱敏过的数据而不是A表中的原始数据,即使用管理员用户查询B表时也得不到真实的原始数据。
2、DML、DDL语句后面跟着的SQL操作语句中包含脱敏字段时会导致操作结果不准确:DML(select、insert into、insert overwrite)和DDL(CTAS)后面跟着的SQL语句如where、order by、group by、distinct、join、having等,其中包含脱敏字段时,由于中间计算的原始SQL被重写而导致参与中间运算的数据不是原始数据,很可能导致最终操作结果与真实结果大相径庭。
发明内容
本发明的主要目的是提供一种数据脱敏方法、设备及计算机可读存储介质,旨在解决现有数据脱敏的脱敏规则不能被继承的技术问题。
为实现上述目的,本发明提供一种数据脱敏方法,所述数据脱敏方法包括以下步骤:
对待脱敏数据进行解析并生成解析结果;
根据所述解析结果,确定脱敏模式,并确定与所述脱敏模式对应的脱敏规则;
根据确定的所述脱敏规则对待脱敏数据进行脱敏。
优选地,所述根据确定的所述脱敏规则对待脱敏数据进行脱敏的步骤包括:
当脱敏规则确定为继承脱敏规则时,基于所述继承脱敏规则对待脱敏数据进行脱敏,并将继承脱敏规则继承给脱敏后的脱敏数据;
当脱敏规则确定为上移脱敏规则时,基于所述上移脱敏规则对待脱敏数据进行脱敏。
优选地,所述根据所述解析结果,确定脱敏模式,并确定与所述脱敏模式对应的脱敏规则的步骤包括:
当解析结果与脱敏继承参数匹配时,确定脱敏模式为脱敏继承模式,并确定脱敏规则为继承脱敏规则;
当解析结果与脱敏上移参数匹配时,确定脱敏模式为
优选地,所述当脱敏规则确定为继承脱敏规则时,基于所述继承脱敏规则对待脱敏数据进行脱敏,并将继承脱敏规则继承给脱敏后的脱敏数据的步骤包括:
获取解析结果中的待继承参数和继承参数,其中待继承参数为待脱敏数据,继承参数为脱敏数据;
基于待继承参数的继承脱敏规则对继承参数进行脱敏,并将所述继承脱敏规则继承到继承参数中。
优选地,所述基于待继承参数的继承脱敏规则对继承参数进行脱敏,并将所述继承脱敏规则继承到继承参数中的步骤包括:
将待继承参数和继承参数发送到预设策略平台,并根据待继承参数获取预设策略平台中与待继承参数对应的继承脱敏规则;
基于所述继承脱敏规则对继承参数进行脱敏,并将所述继承脱敏规则复制给继承参数,以供继承参数对继承脱敏规则进行继承。
优选地,所述当脱敏规则确定为上移脱敏规则时,基于所述上移脱敏规则对待脱敏数据进行脱敏的步骤包括:
获取解析结果中的待上移参数,其中待上移参数为待脱敏数据;
从预设策略平台中获取待上移参数对应的上移脱敏规则,并基于所述上移脱敏规则对待上移参数进行脱敏。
优选地,所述从预设策略平台中获取待上移参数对应的上移脱敏规则,并基于所述上移脱敏规则对待上移参数进行脱敏的步骤包括:
发送请求到预设策略平台,以供预设策略平台根据请求返回与待上移参数对应的上移脱敏规则;
接收上移脱敏规则,并基于所述上移脱敏规则对待上移参数进行脱敏。
优选地,所述根据确定的所述脱敏规则对待脱敏数据进行脱敏的步骤之后包括:
将完成脱敏的待脱敏数据发送到数据集群。
此外,为实现上述目的,本发明还提出一种数据脱敏设备,所述数据脱敏设备包括:存储器、处理器、通信总线以及存储在所述存储器上的数据脱敏程序;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行所述数据脱敏程序,以实现以下步骤:
对待脱敏数据进行解析并生成解析结果;
根据所述解析结果,确定脱敏模式,并确定与所述脱敏模式对应的脱敏规则;
根据确定的所述脱敏规则对待脱敏数据进行脱敏。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序可被一个或者一个以上的处理器执行以用于:
对待脱敏数据进行解析并生成解析结果;
根据所述解析结果,确定脱敏模式,并确定与所述脱敏模式对应的脱敏规则;
根据确定的所述脱敏规则对待脱敏数据进行脱敏。
本发明提出的数据脱敏方法,通过对需要脱敏的待脱敏数据解析,根据解析所得的解析结果,确定待脱敏数据的脱敏模式,从而根据脱敏模式确定对应的脱敏规则,根据确定的所述脱敏规则对待脱敏数据进行脱敏。本方案根据待脱敏数据的不同需求,确定对应的脱敏规则对其进行脱敏,如继承脱敏规则或上移脱敏规则,当为继承脱敏规则时,则根据继承脱敏规则对待脱敏数据进行脱敏,脱敏后的数据继承待脱敏数据的脱敏规则,得到脱敏前的原始数据,确保数据应用的准确性;当为上移脱敏规则时,则根据上移脱敏规则在生成显示数据后对待脱敏数据进行脱敏,使脱敏后的显示数据更准确。
附图说明
图1是本发明的数据脱敏方法第一实施例的流程示意图;
图2是本发明的数据脱敏方法第二实施例的流程示意图;
图3是本发明的数据脱敏方法数量流程示意图;
图4是本发明的数据脱敏装置第一实施例的功能模块示意图;
图5是本发明的数据脱敏装置第二实施例的第一脱敏单元的细化功能模块示意图;
图6是本发明的数据脱敏装置第三实施例的第二脱敏单元的细化功能模块示意图;
图7是本发明的数据脱敏装置第四实施例的功能模块示意图;
图8是本发明实施例方法涉及的硬件运行环境的设备结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种数据脱敏方法,请参照图1,在第一实施例中,本发明提出的数据脱敏方法包括以下步骤:
步骤S10,对待脱敏数据进行解析并生成解析结果;
本发明的技术方案主要适用于SparkSQL的数据脱敏,SparkSQL主要用于结构化数据处理和对Spark数据执行类SQL的查询。SQL为结构化查询语言(Structured QueryLanguage),是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。本方案中预先设置有数据脱敏开关,当此数据脱敏开关开启时,对接收到的SQL语句进行脱敏处理,当此数据脱敏开关关闭时,则不对接收到的SQL语句进行脱敏处理,从而当接收到用户输入的数据时,判断数据脱敏开关是否开启,当数据脱敏开关开启时,将接收到的SQL语句对应的作为待脱敏数据。具体地,当接收到SQL语句时,先由Parser模块对此SQL语句进行解析,Parser模块是一个解析用户输入的标准SQL模块,其通常会根据输入的标SQL进行词法分析,得到词法分析通用Token流再进行语法分析,并将分析机构构造成语法树,根据ANTLR语法最终生成一个Parsed Tree。Parsed Tree为分析树,也称具体语法树(concrete syntaxtree)与抽象的语法树(AST)相对,一般在源代码的翻译和编译过程中,语法分析器创建出分析树。其中词法分析主要为预扫描,去除SQL语句中各个单词中间的空格、换行符、注释等,将其翻译成离散的字符组(即一个个的Token),将此经过词法分析的SQL语句再进行语法分析,语法分析为使用ANTLR工具进行语法到程序的转化。ANTLR(Another Tool for Language Recognition)是指可以根据输入自动生成语法树并可视化的显示出来的开源语法分析器,其可将输入的文本进行编译,并转换成其他形式(如AST—Abstract Syntax Tree,抽象的语法树)。
在生成Parsed Tree之后,Analyzer模块将此Parsed Tree中未能解析完的关系进行深度分析,其中未能解析完的关系包括表关系、关联关系、过滤器、方法等。Analyzer通过自身跟其他添加的分析规则遍历Parsed Tree,将所有的分析规则都应用到Parsed Tree上的每个子节点,符合条件的节点将根据分析规则重写该节点的逻辑,最终返回一个Analyzer Tree。在生成Analyzer Tree之后,会进行数据脱敏开关是否开启的判断,当数据脱敏开关开启时,则通过AST解析模块对Analyzer Tree继续解析,得到一个可分解的对象树结构。此对象树结构中包含了对待脱敏数据解析后的解析结果,根据此解析结果对数据进行脱敏。
步骤S20,根据所述解析结果,确定脱敏模式,并确定与所述脱敏模式对应的脱敏规则;
进一步地,在对待脱敏数据进行解析生成解析结果后,根据解析结果中包含的信息确定脱敏模式,并确定与脱敏模式对应的脱敏规则。脱敏模式包括脱敏继承和脱敏上移,所述根据所述解析结果,确定脱敏模式,并确定与所述脱敏模式对应的脱敏规则的步骤包括:
步骤S21,当解析结果与脱敏继承参数匹配时,确定脱敏模式为脱敏继承模式,并确定脱敏规则为继承脱敏规则;
步骤S22,当解析结果与脱敏上移参数匹配时,确定脱敏模式为脱敏上移模式,并确定脱敏规则为上移脱敏规则。
可理解地,在某些情况下需要从原始数据表中抽取数据元素到新的数据表中继承使用,当抽取的数据元素为敏感数据时,为了能在新的数据表中使用此抽取元素的原始数据,而不是敏感数据脱敏后的伪数据,应将敏感数据的脱敏规则也在新的数据表中继承,从而通过对脱敏规则的继承使新的数据表中继承的数据为原始数据表中的原始数据,此类对继承脱敏规则的模式为脱敏继承模式。此外,在另一情况下,需要将敏感数据在显示界面显示,但是用于获得此显示的敏感数据的中间数据,并不需要显示,从而只需要对显示的敏感数据进行脱敏处理,而不需要对中间数据进行脱敏。此时通过获取对应的脱敏规则对需要显示的显示数据进行脱敏,此类使用脱敏规则对需要显示的显示数据进行脱敏的模式为脱敏上移模式。具体地,脱敏模式为脱敏继承模式还是脱敏上移模式,由生成的解析结果中所包含的信息决定。当解析结果中包含的信息与脱敏继承参数匹配时,则脱敏模式为脱敏继承模式,确定脱敏规则为对应的继承脱敏规则;当解析结果中包含的信息与脱敏上移参数匹配时,则脱敏模式为脱敏上移模式,确定脱敏规则为对应的上移脱敏规则。脱敏继承参数包括DDL(CTAS)以及DML(INSERT SELECT),其中DDL(Data Definition Language)为数据库定义语言,用于定义SQL模式、基本表、视图和索引的创建和撤销操作;CTAS(create tableas select)用于将查询输出结果直接保存在一个新的表中,用CTAS来作为DDL的脱敏继承参数。DML(Data Manipulation Language)为数据操纵语言,用于实现对数据库中数据的操作,而数据操作分成数据查询(SELECT)和数据更新(INSERT SELECT)两类。数据更新又分成插入、删除、和修改三种操作,本实施例将insert into select、insert overwriteselect)两种作为脱敏继承参数。脱敏上移参数则为DML(SELECT)。当生成的解析结果中包含DDL(CTAS)或DML(insert into select、insert overwrite select)中的任意一种时,则说明解析结果与脱敏继承参数匹配,从而确定脱敏模式为脱敏继承模式,相应的脱敏规则为继承脱敏规则;而当生成的解析结果中包含DML(SELECT),则说明解析结果与脱敏上移参数匹配,从而确定脱敏模式为脱敏上移模式,相应的脱敏规则为上移脱敏规则,进而通过相应的脱敏规则对待脱敏数据进行脱敏。
步骤S30,根据确定的所述脱敏规则对待脱敏数据进行脱敏。
更进一步地,在确定与脱敏模式对应的脱敏规则后,根据确定的脱敏规则对待脱敏数据进行脱敏。其中脱敏规则可包括继承脱敏规则和上移脱敏规则。从而根据确定的脱敏规则对待脱敏数据进行脱敏的步骤包括:
步骤S31,当脱敏规则确定为继承脱敏规则时,基于所述继承脱敏规则对待脱敏数据进行脱敏,并将继承脱敏规则继承给脱敏后的脱敏数据;
步骤S32,当脱敏规则确定为上移脱敏规则时,基于所述上移脱敏规则对待脱敏数据进行脱敏。
具体地,当脱敏规则确定为继承脱敏规则时,基于此继承脱敏规则对待脱敏数据进行脱敏,并将继承脱敏规则继承给脱敏后的脱敏数据。具体地,当脱敏模式为脱敏继承模式时,在对原始数据表中的数据进行脱敏的同时还将原始数据表中数据的继承脱敏规则继承给新数据表,以使新数据表中可获得原始数据表中的原始数据,从而确保数据应用的准确性。而当脱敏模式为脱敏上移模式时,则脱敏规则确定为上移脱敏规则,基于此上移脱敏规则对待脱敏数据进行脱敏。因脱敏上移模式中,待脱敏数据为需要显示的显示数据,从而通过上移脱敏规则对需要显示的待脱敏数据进行脱敏,避免在生成显示数据之前对数据先脱敏,再生成显示数据,导致显示数据不准确的问题。在生成显示数据后对待脱敏数据进行脱敏,使脱敏后的显示数据更准确。
本实施例的数据脱敏方法包括:对待脱敏数据进行解析并生成解析结果;根据所述解析结果,确定脱敏模式,并确定与所述脱敏模式对应的脱敏规则;根据确定的所述脱敏规则对待脱敏数据进行脱敏。本方案根据待脱敏数据的不同需求,确定对应的脱敏规则对其进行脱敏,如继承脱敏规则或上移脱敏规则,当为继承脱敏规则时,则根据继承脱敏规则对待脱敏数据进行脱敏,脱敏后的数据继承待脱敏数据的脱敏规则,得到脱敏前的原始数据,确保数据应用的准确性;当为上移脱敏规则时,则根据上移脱敏规则在生成显示数据后对待脱敏数据进行脱敏,使脱敏后的显示数据更准确。
进一步地,在本发明数据脱敏方法的另一实施例中,所述步骤S31基于所述继承脱敏规则对待脱敏数据进行脱敏,并将继承脱敏规则继承给脱敏后的脱敏数据的步骤包括:
步骤S311,获取解析结果中的待继承参数和继承参数,其中待继承参数为待脱敏数据,继承参数为脱敏数据;
步骤S312,基于待继承参数的继承脱敏规则对继承参数进行脱敏,并将所述继承脱敏规则继承到继承参数中。
本实施例用于将原始数据表中的继承脱敏规则继承到新数据表中,当待脱敏数据的脱敏模式为脱敏继承模式时,其相应的脱敏规则为继承脱敏规则,则获取解析结果中的待继承参数和继承参数,并基于待继承参数的继承脱敏规则对继承参数进行脱敏,同时将脱敏继承规则继承到继承参数中,其中待继承参数为原始数据表中的待脱敏数据,继承参数为脱敏后用于新数据表中的脱敏数据。本方案中包括规则继承模块,用于将N(N>=1)张表(即原始数据表)的继承脱敏规则继承到另一张表(即新数据表),当AST解析模块对Analyzer Tree解析,得到的解析结果中包含DDL(CTAS)以及DML(insert into select、insert overwrite select)中的任意一种时,解析DDL(CTAS)或DML(insert into select、insert overwrite select)对象中的Child节点,并调用预设的解析规则,将此解析规则遍历应用到整棵Child语法树,以匹配任何一个与脱敏继承参数对应的节点,并获取原始数据表中的列名、表名和数据库名,此列名、表名和数据库名即为待继承参数,待整棵Child语法树遍历完成后,将此待继承参数保存在全局的列表中。此外还获取新数据表中需要被创建或被插入或被覆盖的列名、表名和数据库名,此列名、表名和数据库名为继承参数。在获取此待继承参数和继承参数后,基于待继承参数的继承脱敏规则对继承参数进行脱敏,并将继承脱敏规则继承到继承参数中。具体地,所述基于待继承参数的继承脱敏规则对继承参数进行脱敏,并将继承脱敏规则继承到继承参数中的步骤包括:
步骤q1,将待继承参数和继承参数发送到预设策略平台,并根据待继承参数获取预设策略平台中与待继承参数对应的继承脱敏规则;
步骤Sq2,基于所述继承脱敏规则对继承参数进行脱敏,并将所述继承脱敏规则复制给继承参数,以供继承参数对继承脱敏规则进行继承。
更进一步地,本方案设置有预设策略平台,预设策略平台包括策略平台模块,用于接收显示界面和AST解析模块发送的请求,根据请求生成新的脱敏规则或返回已存在的脱敏规则。本实施例在获取待继承参数和继承参数后,将待继承参数和继承参数发送到此预设策略平台,此待继承参数和继承参数即为AST解析模块发送的请求。预设策略平台对请求中的待继承参数进行拆分,得到数据库名、表名和列名的拆分数据,并根据拆分数据判断是否存在与拆分数据对应的继承脱敏规则,当不存在与拆分数据对应的继承脱敏规则时,则说明没有对应的脱敏规则,不进行继承。当存在与拆分数据对应的继承脱敏规则时,将继承数据与待继承数据匹配,当继承数据中匹配到与待继承数据相同的数据,则基于继承脱敏规则对继承参数进行脱敏,并将待继承数据对应的继承脱敏规则复制给继承参数,以供继承参数对继承脱敏规则进行继承。同时将继承数据的数据库名、表明和列名以及脱敏策略生成新的脱敏规则保存到预设策略平台中,实现待脱敏数据的脱敏的同时继承了脱敏规则。因继承参数的脱敏规则由继承待继承参数而来,从而其Analyzed Tree没有发生变化,还是原来的Analyzed Tree。
进一步地,在本发明数据脱敏方法的另一实施例中,所述步骤S32基于所述上移脱敏规则对待脱敏数据进行脱敏的步骤包括:
步骤S321,获取解析结果中的待上移参数,其中待上移参数为待脱敏数据;
步骤S322,从预设策略平台中获取待上移参数对应的上移脱敏规则,并基于所述上移脱敏规则对待上移参数进行脱敏。
本实施例用于上移脱敏规则,以对需要显示的数据进行脱敏。当待脱敏数据的脱敏模式为脱敏上移模式时,其相应的脱敏规则为上移脱敏规则,则获取解析结果中的待上移参数,并从预设策略平台中获取待上移参数对应的上移脱敏规则,并基于上移规则对待上移参数进行脱敏,其中待上移参数为待脱敏数据。本方案还包括规则上移模块,用于将脱敏策略上移只应用到输出字段的模块。当AST解析模块对Analyzer Tree解析,得到的解析结果中包含DML(select)时,解析DML(select)对象中的根节点,取出根节点上需要显示的字段,遍历Child节点,匹配到table对象,同时通过解析获得参与计算的表名、数据库名。此显示的字段即为待上移参数,其包括字段名称和字段索引,在获取此待上移参数后,从预设策略平台中获取对应的上移脱敏规则,对待上移参数进行脱敏。具体地,从预设策略平台中获取待上移参数对应的上移脱敏规则,并基于所述上移脱敏规则对待上移参数进行脱敏的的步骤包括:
步骤q3,发送请求到预设策略平台,以供预设策略平台根据请求返回与待上移参数对应的上移脱敏规则;
步骤q4,接收上移脱敏规则,并基于所述上移脱敏规则对待上移参数进行脱敏。
更进一步地,在获取待上移参数后,AST解析模块发送请求到预设策略平台,请求可包括参与计算的表名、数据库名,以便预设策略平台根据请求中的表名和数据库名确定与待上移参数对应的脱敏规则,并将此与待上移参数对应的脱敏规则返回到规则上移模块。根据此待上移参数对应的脱敏规则,将作为待上移参数的显示字段和对应的脱敏规则进行整合,重写根节点结构,生成AST树,完成待上移参数的脱敏,实现待脱敏数据的脱敏。
进一步地,请参照图2,基于本发明数据脱敏方法的第一实施例,提出本发明数据脱敏方法的第二实施例,在第二实施例中,所述根据确定的所述脱敏规则对待脱敏数据进行脱敏的步骤之后包括:
步骤S40,将完成脱敏的待脱敏数据发送到数据集群。
本方案在对待脱敏数据进行脱敏之后,将完成脱敏的待脱敏数据发送到数据集群。具体地,在经过数据脱敏获得原始Analyzed Tree或新生成的Analyzed Tree后,更新整个会话中与其相关的AST树,将经过AST解析过的Analyzed Tree依次传入到缓存数据模块、优化器模块、可执行物理计划模块,最终提交到数据集群中运行,实现待脱敏数据的功能。
请参照图3,在一具体实施例中,为了实现数据脱敏,设置有Parser模块、Analyzer模块、AST解析模块、规则继承模块、规则上移模块和策略平台模块。Parser模块用于根据用户输入的标准SQL进行词法跟语法解析,生成一个含有未能识别的元素的Parsed Tree;Analyzer模块用于二次分析Parser模块输出的Parsed Tree,生成一个Analyzed Tree;AST解析模块用于反向解析Analyzer模块输出的Analyzed Tree;规则继承模块用于根据Analyzer模块的Analyzed Tree抽取列名、表名、数据库名等相关信息,并且将相关信息包装成对象发送给策略平台;规则上移模块用于根据Analyzer模块的Analyzed Tree抽取列名、表名、数据库名相关信息,并且向策略平台请求策略,把脱敏策略只应用到Select最上层的输出字段;策略平台模块用于接受信息报文,分析、拆分、组装规整策略信息最终同步保存到数据库或者根据报文返回已存在的脱敏规则。
当接收到SQL语句时,依此通过Parser模块、Analyzer模块解析后,判断脱敏开关是否打开,当脱敏开关未打开时,经解析后的数据再依次经过Optimizer优化器、可执行物理计划进行大数据集群作业。当脱敏开关打开时,使用AST解析模块对经Analyzer模块解析生成的AST树结构进行解析,并判断解析结果与DDL匹配还是DML匹配,其中与DDL匹配的判断实质为与CTAS的匹配判断。当解析结果与DML匹配时,进一步判断是与SELECT匹配还是与INSERT SELECT。当与SELECT匹配时,判定脱敏模式为脱敏上移模式,对AST树的1级节点进行解析,并启动规则上移模块,抽取1级节点输出的字段名、表名和数据库名等信息,并根据抽取信息发送请求策略的请求信息到策略平台,策略平台根据请求信息返回一个返回策略,规则上移模块根据获取的返回策略列表,重构AST根节点,生成新的Analyzed Tree。当与CTAS匹配或者与INSERT SELECT匹配时,判定脱敏模式为脱敏继承模式,对AST树的2级节点进行解析,并启动规则继承模块,抽取2级节点输出的字段名、表名和数据库名等信息,并根据抽取信息确定对应的脱敏策略进行继承,将继承的脱敏策略、继承数据表的表名、列名以及数据库名生成新的脱敏策略发送到策略平台保存,因只是对抽取信息中相同字段的脱敏策略进行继承,从而Analyzed Tree并没有发生变化,还是原始Analyzed Tree。
具体地,当脱敏模式为脱敏继承模式时,获取Analyzer模块生成的AnalyzedTree,模式匹配到DDL(CTAS)、DML(insert into select、insert overwrite select)对象,抽取本对象的Child节点涉及到的表、数据库、列、列索引、列别名跟本对象中涉及到的表、数据库发送给策略平台。例如:create table B as select id,name from A,Analyzer分析器返回一个AST树,将对象信息包装成SrcObject[dbName,tableName,List<String>srcColumns]跟destObject[dbName,tableName]两个对象,对应的发送[String dbName="default",String tableName="A",List<Column>srcColumns={("id",38,"A"),("name",39,"A")}]跟[String dbName="default",String tableName="B"]给策略平台,将A表对应的脱敏策略拷贝复制给B表,并且持久化到策略平台保存,完成B表的脱敏。
当脱敏模式为脱敏上移模式时,获取Analyzer模块生成的Analyzed Tree,模式匹配到DML(select)对象,抽取本对象的Child节点模式匹配到MetastoreRelation,忽略Filter跟Join对象,根据涉及到表、数据库、列、列索引、列别名的信息发送请求信息给策略平台,策略平台返回脱敏策略规则。例如:select A.id,A.name,B.c_id from A join B onA.c_id=B.c_id where A.id=1Analyzer分析器返回一个AST树,将对象信息包装成SrcObject[dbName,tableName,List<String>srcColumns]一个对象,对应的发送[StringdbName="default",String tableName="A",List<Column>srcColumns={("id",9,"A"),("name",10,"A"),("c_id",11,"B")],策略平台返回一个脱敏策略对象PolicyObject[List<Columns>={("id",9,"A","hash(id)"),("name",10,"A",""),("c_id",11,"B","mask(c_id)")}],解析模块根据返回的策略,重写逻辑计划,生成AST树。
此外,本发明还提供一种数据脱敏装置,参照图4,在第一实施例中,本发明提出的数据脱敏装置包括:
解析模块10,用于对待脱敏数据进行解析并生成解析结果;
本发明的技术方案主要适用于SparkSQL的数据脱敏,SparkSQL主要用于结构化数据处理和对Spark数据执行类SQL的查询。SQL为结构化查询语言(Structured QueryLanguage),是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。本方案中预先设置有数据脱敏开关,当此数据脱敏开关开启时,对接收到的SQL语句进行脱敏处理,当此数据脱敏开关关闭时,则不对接收到的SQL语句进行脱敏处理,从而当接收到用户输入的数据时,判断数据脱敏开关是否开启,当数据脱敏开关开启时,将接收到的SQL语句对应的作为待脱敏数据。具体地,当接收到SQL语句时,先由Parser模块对此SQL语句进行解析,Parser模块是一个解析用户输入的标准SQL模块,其通常会根据输入的标SQL进行词法分析,得到词法分析通用Token流再进行语法分析,并将分析机构构造成语法树,根据ANTLR语法最终生成一个Parsed Tree。Parsed Tree为分析树,也称具体语法树(concrete syntaxtree)与抽象的语法树(AST)相对,一般在源代码的翻译和编译过程中,语法分析器创建出分析树。其中词法分析主要为预扫描,去除SQL语句中各个单词中间的空格、换行符、注释等,将其翻译成离散的字符组(即一个个的Token),将此经过词法分析的SQL语句再进行语法分析,语法分析为使用ANTLR工具进行语法到程序的转化。ANTLR(Another Tool for Language Recognition)是指可以根据输入自动生成语法树并可视化的显示出来的开源语法分析器,其可将输入的文本进行编译,并转换成其他形式(如AST—Abstract Syntax Tree,抽象的语法树)。
在生成Parsed Tree之后,Analyzer模块将此Parsed Tree中未能解析完的关系进行深度分析,其中未能解析完的关系包括表关系、关联关系、过滤器、方法等。Analyzer通过自身跟其他添加的分析规则遍历Parsed Tree,将所有的分析规则都应用到Parsed Tree上的每个子节点,符合条件的节点将根据分析规则重写该节点的逻辑,最终返回一个Analyzer Tree。在生成Analyzer Tree之后,会进行数据脱敏开关是否开启的判断,当数据脱敏开关开启时,则通过AST解析模块对Analyzer Tree继续解析,得到一个可分解的对象树结构。此对象树结构中包含了对待脱敏数据解析后的解析结果,根据此解析结果对数据进行脱敏。
确定模块20,用于根据所述解析结果,确定脱敏模式,并确定与所述脱敏模式对应的脱敏规则;
进一步地,在对待脱敏数据进行解析生成解析结果后,根据解析结果中包含的信息确定脱敏模式,并确定与脱敏模式对应的脱敏规则。脱敏模式包括脱敏继承和脱敏上移,所述确定模块20还用于:
当解析结果与脱敏继承参数匹配时,确定脱敏模式为脱敏继承模式,并确定脱敏规则为继承脱敏规则;
当解析结果与脱敏上移参数匹配时,确定脱敏模式为脱敏上移模式,并确定脱敏规则为上移脱敏规则。
可理解地,在某些情况下需要从原始数据表中抽取数据元素到新的数据表中继承使用,当抽取的数据元素为敏感数据时,为了能在新的数据表中使用此抽取元素的原始数据,而不是敏感数据脱敏后的伪数据,应将敏感数据的脱敏规则也在新的数据表中继承,从而通过对脱敏规则的继承使新的数据表中继承的数据为原始数据表中的原始数据,此类对继承脱敏规则的模式为脱敏继承模式。此外,在另一情况下,需要将敏感数据在显示界面显示,但是用于获得此显示的敏感数据的中间数据,并不需要显示,从而只需要对显示的敏感数据进行脱敏处理,而不需要对中间数据进行脱敏。此时通过获取对应的脱敏规则对需要显示的显示数据进行脱敏,此类使用脱敏规则对需要显示的显示数据进行脱敏的模式为脱敏上移模式。具体地,脱敏模式为脱敏继承模式还是脱敏上移模式,由生成的解析结果中所包含的信息决定。当解析结果中包含的信息与脱敏继承参数匹配时,则脱敏模式为脱敏继承模式,确定脱敏规则为对应的继承脱敏规则;当解析结果中包含的信息与脱敏上移参数匹配时,则脱敏模式为脱敏上移模式,确定脱敏规则为对应的上移脱敏规则。脱敏继承参数包括DDL(CTAS)以及DML(INSERT SELECT),其中DDL(Data Definition Language)为数据库定义语言,用于定义SQL模式、基本表、视图和索引的创建和撤销操作;CTAS(create tableas select)用于将查询输出结果直接保存在一个新的表中,用CTAS来作为DDL的脱敏继承参数。DML(Data Manipulation Language)为数据操纵语言,用于实现对数据库中数据的操作,而数据操作分成数据查询(SELECT)和数据更新(INSERT SELECT)两类。数据更新又分成插入、删除、和修改三种操作,本实施例将insert into select、insert overwriteselect)两种作为脱敏继承参数。脱敏上移参数则为DML(SELECT)。当生成的解析结果中包含DDL(CTAS)或DML(insert into select、insert overwrite select)中的任意一种时,则说明解析结果与脱敏继承参数匹配,从而确定脱敏模式为脱敏继承模式,相应的脱敏规则为继承脱敏规则;而当生成的解析结果中包含DML(SELECT),则说明解析结果与脱敏上移参数匹配,从而确定脱敏模式为脱敏上移模式,相应的脱敏规则为上移脱敏规则,进而通过相应的脱敏规则对待脱敏数据进行脱敏。
脱敏模块30,用于根据确定的所述脱敏规则对待脱敏数据进行脱敏。
更进一步地,在确定与脱敏模式对应的脱敏规则后,根据确定的脱敏规则对待脱敏数据进行脱敏。其中脱敏模块30包括:
第一脱敏单元31,用于当脱敏规则确定为继承脱敏规则时,基于所述继承脱敏规则对待脱敏数据进行脱敏,并将继承脱敏规则继承给脱敏后的脱敏数据;
第二脱敏单元32,用于当脱敏规则确定为上移脱敏规则时,基于所述上移脱敏规则对待脱敏数据进行脱敏。
具体地,当脱敏规则确定为继承脱敏规则时,基于此继承脱敏规则对待脱敏数据进行脱敏,并将继承脱敏规则继承给脱敏后的脱敏数据。具体地,当脱敏模式为脱敏继承模式时,在对原始数据表中的数据进行脱敏的同时还将原始数据表中数据的继承脱敏规则继承给新数据表,以使新数据表中可获得原始数据表中的原始数据,从而确保数据应用的准确性。而当脱敏模式为脱敏上移模式时,则脱敏规则确定为上移脱敏规则,基于此上移脱敏规则对待脱敏数据进行脱敏。因脱敏上移模式中,待脱敏数据为需要显示的显示数据,从而通过上移脱敏规则对需要显示的待脱敏数据进行脱敏,避免在生成显示数据之前对数据先脱敏,再生成显示数据,导致显示数据不准确的问题。在生成显示数据后对待脱敏数据进行脱敏,使脱敏后的显示数据更准确。
本实施例的数据脱敏装置包括:解析模块10,用于对待脱敏数据进行解析并生成解析结果;确定模块20,用于根据所述解析结果,确定脱敏模式,并确定与所述脱敏模式对应的脱敏规则;脱敏模块30,用于根据确定的所述脱敏规则对待脱敏数据进行脱敏。本方案根据待脱敏数据的不同需求,确定对应的脱敏规则对其进行脱敏,如继承脱敏规则或上移脱敏规则,当为继承脱敏规则时,则根据继承脱敏规则对待脱敏数据进行脱敏,脱敏后的数据继承待脱敏数据的脱敏规则,得到脱敏前的原始数据,确保数据应用的准确性;当为上移脱敏规则时,则根据上移脱敏规则在生成显示数据后对待脱敏数据进行脱敏,使脱敏后的显示数据更准确。
进一步的,参照图5,基于本发明的数据脱敏装置第一实施例,在本发明数据脱敏装置的第二实施例中,所述第一脱敏单元31还包括:
第一获取子单元311,用于获取解析结果中的待继承参数和继承参数,其中待继承参数为待脱敏数据,继承参数为脱敏数据;
第一脱敏子单元312,用于基于待继承参数的继承脱敏规则对继承参数进行脱敏,并将所述继承脱敏规则继承到继承参数中。
本实施例用于将原始数据表中的继承脱敏规则继承到新数据表中,当待脱敏数据的脱敏模式为脱敏继承模式时,其相应的脱敏规则为继承脱敏规则,则获取解析结果中的待继承参数和继承参数,并基于待继承参数的继承脱敏规则对继承参数进行脱敏,同时将脱敏继承规则继承到继承参数中,其中待继承参数为原始数据表中的待脱敏数据,继承参数为脱敏后用于新数据表中的脱敏数据。本方案中包括规则继承模块,用于将N(N>=1)张表(即原始数据表)的继承脱敏规则继承到另一张表(即新数据表),当AST解析模块对Analyzer Tree解析,得到的解析结果中包含DDL(CTAS)以及DML(insert into select、insert overwrite select)中的任意一种时,解析DDL(CTAS)或DML(insert into select、insert overwrite select)对象中的Child节点,并调用预设的解析规则,将此解析规则遍历应用到整棵Child语法树,以匹配任何一个与脱敏继承参数对应的节点,并获取原始数据表中的列名、表名和数据库名,此列名、表名和数据库名即为待继承参数,待整棵Child语法树遍历完成后,将此待继承参数保存在全局的列表中。此外还获取新数据表中需要被创建或被插入或被覆盖的列名、表名和数据库名,此列名、表名和数据库名为继承参数。在获取此待继承参数和继承参数后,基于待继承参数的继承脱敏规则对继承参数进行脱敏,并将继承脱敏规则继承到继承参数中。具体地,第一脱敏子单元312还用于:
将待继承参数和继承参数发送到预设策略平台,并根据待继承参数获取预设策略平台中与待继承参数对应的继承脱敏规则;
基于所述继承脱敏规则对继承参数进行脱敏,并将所述继承脱敏规则复制给继承参数,以供继承参数对继承脱敏规则进行继承。
更进一步地,本方案设置有预设策略平台,预设策略平台包括策略平台模块,用于接收显示界面和AST解析模块发送的请求,根据请求生成新的脱敏规则或返回已存在的脱敏规则。本实施例在获取待继承参数和继承参数后,将待继承参数和继承参数发送到此预设策略平台,此待继承参数和继承参数即为AST解析模块发送的请求。预设策略平台对请求中的待继承参数进行拆分,得到数据库名、表名和列名的拆分数据,并根据拆分数据判断是否存在与拆分数据对应的继承脱敏规则,当不存在与拆分数据对应的继承脱敏规则时,则说明没有对应的脱敏规则,不进行继承。当存在与拆分数据对应的继承脱敏规则时,将继承数据与待继承数据匹配,当继承数据中匹配到与待继承数据相同的数据,则基于继承脱敏规则对继承参数进行脱敏,并将待继承数据对应的继承脱敏规则复制给继承参数,以供继承参数对继承脱敏规则进行继承。同时将继承数据的数据库名、表明和列名以及脱敏策略生成新的脱敏规则保存到预设策略平台中,实现待脱敏数据的脱敏的同时继承了脱敏规则。因继承参数的脱敏规则由继承待继承参数而来,从而其Analyzed Tree没有发生变化,还是原来的Analyzed Tree。
进一步的,参照图6,基于本发明的数据脱敏装置第二实施例,在本发明数据脱敏装置的第三实施例中,所述第二脱敏单元32还包括:
第二获取子单元321,用于获取解析结果中的待上移参数,其中待上移参数为待脱敏数据;
第二脱敏子单元322,用于从预设策略平台中获取待上移参数对应的上移脱敏规则,并基于所述上移脱敏规则对待上移参数进行脱敏。
本实施例用于上移脱敏规则,以对需要显示的数据进行脱敏。当待脱敏数据的脱敏模式为脱敏上移模式时,其相应的脱敏规则为上移脱敏规则,则获取解析结果中的待上移参数,并从预设策略平台中获取待上移参数对应的上移脱敏规则,并基于上移规则对待上移参数进行脱敏,其中待上移参数为待脱敏数据。本方案还包括规则上移模块,用于将脱敏策略上移只应用到输出字段的模块。当AST解析模块对Analyzer Tree解析,得到的解析结果中包含DML(select)时,解析DML(select)对象中的根节点,取出根节点上需要显示的字段,遍历Child节点,匹配到table对象,同时通过解析获得参与计算的表名、数据库名。此显示的字段即为待上移参数,其包括字段名称和字段索引,在获取此待上移参数后,从预设策略平台中获取对应的上移脱敏规则,对待上移参数进行脱敏。具体地,第二脱敏子单元322还用于:
发送请求到预设策略平台,以供预设策略平台根据请求返回与待上移参数对应的上移脱敏规则;
接收上移脱敏规则,并基于所述上移脱敏规则对待上移参数进行脱敏。
更进一步地,在获取待上移参数后,AST解析模块发送请求到预设策略平台,请求可包括参与计算的表名、数据库名,以便预设策略平台根据请求中的表名和数据库名确定与待上移参数对应的脱敏规则,并将此与待上移参数对应的脱敏规则返回到规则上移模块。根据此待上移参数对应的脱敏规则,将作为待上移参数的显示字段和对应的脱敏规则进行整合,重写根节点结构,生成AST树,完成待上移参数的脱敏,实现待脱敏数据的脱敏。
进一步的,参照图7,基于本发明的数据脱敏装置第三实施例,在本发明数据脱敏装置的第四实施例中,所述数据脱敏装置还包括:
发送模块40,用于将完成脱敏的待脱敏数据发送到数据集群。
本方案在对待脱敏数据进行脱敏之后,将完成脱敏的待脱敏数据发送到数据集群。具体地,在经过数据脱敏获得原始Analyzed Tree或新生成的Analyzed Tree后,更新整个会话中与其相关的AST树,将经过AST解析过的Analyzed Tree依次传入到缓存数据模块、优化器模块、可执行物理计划模块,最终提交到数据集群中运行,实现待脱敏数据的功能。
请参照图3,在一具体实施例中,为了实现数据脱敏,设置有Parser模块、Analyzer模块、AST解析模块、规则继承模块、规则上移模块和策略平台模块。Parser模块用于根据用户输入的标准SQL进行词法跟语法解析,生成一个含有未能识别的元素的Parsed Tree;Analyzer模块用于二次分析Parser模块输出的Parsed Tree,生成一个Analyzed Tree;AST解析模块用于反向解析Analyzer模块输出的Analyzed Tree;规则继承模块用于根据Analyzer模块的Analyzed Tree抽取列名、表名、数据库名等相关信息,并且将相关信息包装成对象发送给策略平台;规则上移模块用于根据Analyzer模块的Analyzed Tree抽取列名、表名、数据库名相关信息,并且向策略平台请求策略,把脱敏策略只应用到Select最上层的输出字段;策略平台模块用于接受信息报文,分析、拆分、组装规整策略信息最终同步保存到数据库或者根据报文返回已存在的脱敏规则。
当接收到SQL语句时,依此通过Parser模块、Analyzer模块解析后,判断脱敏开关是否打开,当脱敏开关未打开时,经解析后的数据再依次经过Optimizer优化器、可执行物理计划进行大数据集群作业。当脱敏开关打开时,使用AST解析模块对经Analyzer模块解析生成的AST树结构进行解析,并判断解析结果与DDL匹配还是DML匹配,其中与DDL匹配的判断实质为与CTAS的匹配判断。当解析结果与DML匹配时,进一步判断是与SELECT匹配还是与INSERT SELECT。当与SELECT匹配时,判定脱敏模式为脱敏上移模式,对AST树的1级节点进行解析,并启动规则上移模块,抽取1级节点输出的字段名、表名和数据库名等信息,并根据抽取信息发送请求策略的请求信息到策略平台,策略平台根据请求信息返回一个返回策略,规则上移模块根据获取的返回策略列表,重构AST根节点,生成新的Analyzed Tree。当与CTAS匹配或者与INSERT SELECT匹配时,判定脱敏模式为脱敏继承模式,对AST树的2级节点进行解析,并启动规则继承模块,抽取2级节点输出的字段名、表名和数据库名等信息,并根据抽取信息确定对应的脱敏策略进行继承,将继承的脱敏策略、继承数据表的表名、列名以及数据库名生成新的脱敏策略发送到策略平台保存,因只是对抽取信息中相同字段的脱敏策略进行继承,从而Analyzed Tree并没有发生变化,还是原始Analyzed Tree。
具体地,当脱敏模式为脱敏继承模式时,获取Analyzer模块生成的AnalyzedTree,模式匹配到DDL(CTAS)、DML(insert into select、insert overwrite select)对象,抽取本对象的Child节点涉及到的表、数据库、列、列索引、列别名跟本对象中涉及到的表、数据库发送给策略平台。例如:create table B as select id,name from A,Analyzer分析器返回一个AST树,将对象信息包装成SrcObject[dbName,tableName,List<String>srcColumns]跟destObject[dbName,tableName]两个对象,对应的发送[String dbName="default",String tableName="A",List<Column>srcColumns={("id",38,"A"),("name",39,"A")}]跟[String dbName="default",String tableName="B"]给策略平台,将A表对应的脱敏策略拷贝复制给B表,并且持久化到策略平台保存,完成B表的脱敏。
当脱敏模式为脱敏上移模式时,获取Analyzer模块生成的Analyzed Tree,模式匹配到DML(select)对象,抽取本对象的Child节点模式匹配到MetastoreRelation,忽略Filter跟Join对象,根据涉及到表、数据库、列、列索引、列别名的信息发送请求信息给策略平台,策略平台返回脱敏策略规则。例如:select A.id,A.name,B.c_id from A join B onA.c_id=B.c_id where A.id=1Analyzer分析器返回一个AST树,将对象信息包装成SrcObject[dbName,tableName,List<String>srcColumns]一个对象,对应的发送[StringdbName="default",String tableName="A",List<Column>srcColumns={("id",9,"A"),("name",10,"A"),("c_id",11,"B")],策略平台返回一个脱敏策略对象PolicyObject[List<Columns>={("id",9,"A","hash(id)"),("name",10,"A",""),("c_id",11,"B","mask(c_id)")}],解析模块根据返回的策略,重写逻辑计划,生成AST树。
参照图8,图8是本发明实施例方法涉及的硬件运行环境的设备结构示意图。
本发明实施例数据脱敏设备可以是PC,也可以是智能手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面3)播放器、便携计算机等终端设备。
如图8所示,该数据脱敏设备可以包括:处理器1001,例如CPU,存储器1005,通信总线1002。其中,通信总线1002用于实现处理器1001和存储器1005之间的连接通信。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,该数据脱敏设备还可以包括用户接口、网络接口、摄像头、RF(RadioFrequency,射频)电路,传感器、音频电路、WiFi模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
本领域技术人员可以理解,图8中示出的数据脱敏设备结构并不构成对数据脱敏设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图8所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块以及数据脱敏程序。操作系统是管理和控制数据脱敏设备硬件和软件资源的程序,支持数据脱敏程序以及其它软件和/或程序的运行。网络通信模块用于实现存储器1005内部各组件之间的通信,以及与数据脱敏设备中其它硬件和软件之间通信。
在图8所示的数据脱敏设备中,处理器1001用于执行存储器1005中存储的数据脱敏程序,实现以下步骤:
对待脱敏数据进行解析并生成解析结果;
根据所述解析结果,确定脱敏模式,并确定与所述脱敏模式对应的脱敏规则;
根据确定的所述脱敏规则对待脱敏数据进行脱敏。
进一步地,所述根据确定的所述脱敏规则对待脱敏数据进行脱敏的步骤包括:
当脱敏规则确定为继承脱敏规则时,基于所述继承脱敏规则对待脱敏数据进行脱敏,并将继承脱敏规则继承给脱敏后的脱敏数据;
当脱敏规则确定为上移脱敏规则时,基于所述上移脱敏规则对待脱敏数据进行脱敏。
进一步地,所述根据所述解析结果,确定脱敏模式,并确定与所述脱敏模式对应的脱敏规则的步骤包括:
当解析结果与脱敏继承参数匹配时,确定脱敏模式为脱敏继承模式,并确定脱敏规则为继承脱敏规则;
当解析结果与脱敏上移参数匹配时,确定脱敏模式为脱敏上移模式,并确定脱敏规则为上移脱敏规则。
进一步地,所述基于所述继承脱敏规则对待脱敏数据进行脱敏,并将继承脱敏规则继承给脱敏后的脱敏数据的步骤包括:
获取解析结果中的待继承参数和继承参数,其中待继承参数为待脱敏数据,继承参数为脱敏数据;
基于待继承参数的继承脱敏规则对继承参数进行脱敏,并将所述继承脱敏规则继承到继承参数中
进一步地,所述基于待继承参数的继承脱敏规则对继承参数进行脱敏,并将所述继承脱敏规则继承到继承参数中的步骤包括:
将待继承参数和继承参数发送到预设策略平台,并根据待继承参数获取预设策略平台中与待继承参数对应的继承脱敏规则;
基于所述继承脱敏规则对继承参数进行脱敏,并将所述继承脱敏规则复制给继承参数,以供继承参数对继承脱敏规则进行继承。
进一步地,所述基于所述上移脱敏规则对待脱敏数据进行脱敏的步骤包括:
获取解析结果中的待上移参数,其中待上移参数为待脱敏数据;
从预设策略平台中获取待上移参数对应的上移脱敏规则,并基于所述上移脱敏规则对待上移参数进行脱敏。
进一步地,所述从预设策略平台中获取待上移参数对应的上移脱敏规则,并基于所述上移脱敏规则对待上移参数进行脱敏的步骤包括:
发送请求到预设策略平台,以供预设策略平台根据请求返回与待上移参数对应的上移脱敏规则;
接收上移脱敏规则,并基于所述上移脱敏规则对待上移参数进行脱敏。
进一步地,所述根据确定的所述脱敏规则对待脱敏数据进行脱敏的步骤之后,
处理器1001用于执行存储器1005中存储的数据脱敏程序,实现以下步骤:
将完成脱敏的待脱敏数据发送到数据集群。
本发明数据脱敏设备具体实施方式与上述数据脱敏方法各实施例基本相同,在此不再赘述。
本发明提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于:
对待脱敏数据进行解析并生成解析结果;
根据所述解析结果,确定脱敏模式,并确定与所述脱敏模式对应的脱敏规则;
根据确定的所述脱敏规则对待脱敏数据进行脱敏。
进一步地,所述根据确定的所述脱敏规则对待脱敏数据进行脱敏的步骤包括:
当脱敏规则确定为继承脱敏规则时,基于所述继承脱敏规则对待脱敏数据进行脱敏,并将继承脱敏规则继承给脱敏后的脱敏数据;
当脱敏规则确定为上移脱敏规则时,基于所述上移脱敏规则对待脱敏数据进行脱敏。
进一步地,所述根据所述解析结果,确定脱敏模式,并确定与所述脱敏模式对应的脱敏规则的步骤包括:
当解析结果与脱敏继承参数匹配时,确定脱敏模式为脱敏继承模式,并确定脱敏规则为继承脱敏规则;
当解析结果与脱敏上移参数匹配时,确定脱敏模式为脱敏上移模式,并确定脱敏规则为上移脱敏规则。
进一步地,所述基于所述继承脱敏规则对待脱敏数据进行脱敏,并将继承脱敏规则继承给脱敏后的脱敏数据的步骤包括:
获取解析结果中的待继承参数和继承参数,其中待继承参数为待脱敏数据,继承参数为脱敏数据;
基于待继承参数的继承脱敏规则对继承参数进行脱敏,并将所述继承脱敏规则继承到继承参数中
进一步地,所述基于待继承参数的继承脱敏规则对继承参数进行脱敏,并将所述继承脱敏规则继承到继承参数中的步骤包括:
将待继承参数和继承参数发送到预设策略平台,并根据待继承参数获取预设策略平台中与待继承参数对应的继承脱敏规则;
基于所述继承脱敏规则对继承参数进行脱敏,并将所述继承脱敏规则复制给继承参数,以供继承参数对继承脱敏规则进行继承。
进一步地,所述基于所述上移脱敏规则对待脱敏数据进行脱敏的步骤包括:
获取解析结果中的待上移参数,其中待上移参数为待脱敏数据;
从预设策略平台中获取待上移参数对应的上移脱敏规则,并基于所述上移脱敏规则对待上移参数进行脱敏。
进一步地,所述从预设策略平台中获取待上移参数对应的上移脱敏规则,并基于所述上移脱敏规则对待上移参数进行脱敏的步骤包括:
发送请求到预设策略平台,以供预设策略平台根据请求返回与待上移参数对应的上移脱敏规则;
接收上移脱敏规则,并基于所述上移脱敏规则对待上移参数进行脱敏。
进一步地,所述根据确定的所述脱敏规则对待脱敏数据进行脱敏的步骤之后,
所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于:
将完成脱敏的待脱敏数据发送到数据集群。
本发明计算机可读存储介质具体实施方式与上述数据脱敏方法各实施例基本相同,在此不再赘述。
还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

Claims (10)

1.一种数据脱敏方法,其特征在于,所述数据脱敏方法包括以下步骤:
对待脱敏数据进行解析并生成解析结果;
根据所述解析结果,确定脱敏模式,并确定与所述脱敏模式对应的脱敏规则;
根据确定的所述脱敏规则对待脱敏数据进行脱敏,包括:
当脱敏规则确定为继承脱敏规则时,基于所述继承脱敏规则对待脱敏数据进行脱敏,并将继承脱敏规则继承给脱敏后的脱敏数据;
所述继承脱敏规则为在脱敏继承模式下使用的,要在新的数据表中继承的脱敏规则;
所述脱敏继承模式为:将敏感数据的脱敏规则在新的数据表中继承,从而通过对脱敏规则的继承,使新的数据表中继承的数据为原始数据表中的原始数据的脱敏模式;
所述将继承脱敏规则继承给脱敏后的脱敏数据包括:将继承脱敏规则复制给脱敏后的脱敏数据。
2.如权利要求1所述的数据脱敏方法,其特征在于,所述根据确定的所述脱敏规则对待脱敏数据进行脱敏的步骤还包括:
当脱敏规则确定为上移脱敏规则时,基于所述上移脱敏规则对待脱敏数据进行脱敏;所述上移脱敏规则为在脱敏上移模式下使用的,只需对显示的敏感数据进行脱敏处理的脱敏规则;所述脱敏上移模式为:只需对显示的敏感数据进行脱敏处理,不需要对中间数据进行脱敏的脱敏模式。
3.如权利要求1所述的数据脱敏方法,其特征在于,所述根据所述解析结果,确定脱敏模式,并确定与所述脱敏模式对应的脱敏规则的步骤包括:
当解析结果与脱敏继承参数匹配时,确定脱敏模式为脱敏继承模式,并确定脱敏规则为继承脱敏规则;所述脱敏继承参数包括数据库定义语言中的将查询输出结果直接保存在一个新的表中的参数,以及数据操纵语言中的数据更新参数;
当解析结果与脱敏上移参数匹配时,确定脱敏模式为脱敏上移模式,并确定脱敏规则为上移脱敏规则;所述脱敏上移参数包括数据操纵语言中的数据查询参数。
4.如权利要求2所述的数据脱敏方法,其特征在于,所述基于所述继承脱敏规则对待脱敏数据进行脱敏,并将继承脱敏规则继承给脱敏后的脱敏数据的步骤包括:
获取解析结果中的待继承参数和继承参数,其中待继承参数为待脱敏数据,继承参数为脱敏数据;
基于待继承参数的继承脱敏规则对继承参数进行脱敏,并将所述继承脱敏规则继承到继承参数中。
5.如权利要求4所述的数据脱敏方法,其特征在于,所述基于待继承参数的继承脱敏规则对继承参数进行脱敏,并将所述继承脱敏规则继承到继承参数中的步骤包括:
将待继承参数和继承参数发送到预设策略平台,并根据待继承参数获取预设策略平台中与待继承参数对应的继承脱敏规则;
基于所述继承脱敏规则对继承参数进行脱敏,并将所述继承脱敏规则复制给继承参数,以供继承参数对继承脱敏规则进行继承。
6.如权利要求2所述的数据脱敏方法,其特征在于,所述基于所述上移脱敏规则对待脱敏数据进行脱敏的步骤包括:
获取解析结果中的待上移参数,其中待上移参数为待脱敏数据;
从预设策略平台中获取待上移参数对应的上移脱敏规则,并基于所述上移脱敏规则对待上移参数进行脱敏。
7.如权利要求6所述的数据脱敏方法,其特征在于,所述从预设策略平台中获取待上移参数对应的上移脱敏规则,并基于所述上移脱敏规则对待上移参数进行脱敏的步骤包括:
发送请求到预设策略平台,以供预设策略平台根据请求返回与待上移参数对应的上移脱敏规则;
接收上移脱敏规则,并基于所述上移脱敏规则对待上移参数进行脱敏。
8.如权利要求1-7任一项所述的数据脱敏方法,其特征在于,所述根据确定的所述脱敏规则对待脱敏数据进行脱敏的步骤之后包括:
将完成脱敏的待脱敏数据发送到数据集群。
9.一种数据脱敏设备,其特征在于,所述数据脱敏设备包括:存储器、处理器、通信总线以及存储在所述存储器上的数据脱敏程序;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行所述数据脱敏程序,以实现如权利要求1-8中任一项所述的数据脱敏方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据脱敏程序,所述数据脱敏程序被处理器执行时实现如权利要求1-8中任一项所述的数据脱敏方法的步骤。
CN201710726993.4A 2017-08-22 2017-08-22 数据脱敏方法、设备及计算机可读存储介质 Active CN109426725B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710726993.4A CN109426725B (zh) 2017-08-22 2017-08-22 数据脱敏方法、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710726993.4A CN109426725B (zh) 2017-08-22 2017-08-22 数据脱敏方法、设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN109426725A CN109426725A (zh) 2019-03-05
CN109426725B true CN109426725B (zh) 2021-02-19

Family

ID=65498567

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710726993.4A Active CN109426725B (zh) 2017-08-22 2017-08-22 数据脱敏方法、设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN109426725B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110414261B (zh) * 2019-06-26 2022-04-26 北京三快在线科技有限公司 一种数据脱敏方法、装置、设备及可读存储介质
CN111083292A (zh) * 2019-11-18 2020-04-28 集奥聚合(北京)人工智能科技有限公司 用于智能语音外呼系统的语料处理方法以及系统
CN111125758A (zh) * 2019-12-19 2020-05-08 北京安华金和科技有限公司 一种基于全语法树解析的动态脱敏方法
CN111241577A (zh) * 2020-01-06 2020-06-05 上海孚厘金融信息服务有限公司 一种对展示数据进行脱敏处理的方法
CN111177788A (zh) * 2020-01-07 2020-05-19 北京启明星辰信息安全技术有限公司 Hive的动态脱敏方法及动态脱敏系统
CN111625845A (zh) * 2020-04-17 2020-09-04 沈阳派客动力科技有限公司 大数据的安全管理方法、装置和设备
CN112528327A (zh) * 2020-12-08 2021-03-19 杭州数梦工场科技有限公司 数据脱敏方法及装置、数据还原方法及装置
CN112800472B (zh) * 2021-03-08 2022-03-01 国家工业信息安全发展研究中心 一种基于微服务架构工业互联网标识数据保护系统
CN113407989A (zh) * 2021-05-26 2021-09-17 天九共享网络科技集团有限公司 数据脱敏的方法、装置、电子设备及存储介质
CN114925400B (zh) * 2022-05-27 2024-05-14 杭州帕拉迪网络科技有限公司 数据动态脱敏方法和装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013101723A1 (en) * 2011-12-27 2013-07-04 Wellpoint, Inc. Method and system for data pattern matching, masking and removal of sensitive data
CN106295392A (zh) * 2015-06-24 2017-01-04 阿里巴巴集团控股有限公司 数据脱敏处理方法和装置
CN106778288B (zh) * 2015-11-24 2019-08-09 阿里巴巴集团控股有限公司 一种数据脱敏的方法及系统
CN106203139A (zh) * 2016-07-13 2016-12-07 成都知道创宇信息技术有限公司 一种数据局部脱敏方法
CN106529329A (zh) * 2016-10-11 2017-03-22 中国电子科技网络信息安全有限公司 一种用于大数据的脱敏系统及脱敏方法
CN106407843A (zh) * 2016-10-17 2017-02-15 深圳中兴网信科技有限公司 数据脱敏方法和数据脱敏装置

Also Published As

Publication number Publication date
CN109426725A (zh) 2019-03-05

Similar Documents

Publication Publication Date Title
CN109426725B (zh) 数据脱敏方法、设备及计算机可读存储介质
US9646041B2 (en) Testing of inactive design-time artifacts
KR100745533B1 (ko) 전역 쿼리 상관 관계 속성 제공 방법 및 시스템
US10162613B1 (en) Re-usable rule parser for different runtime engines
US11269694B2 (en) Automated API code generation
US10216826B2 (en) Database query system
JP2002163290A (ja) クエリ最適化のためのコストに基づく具体化ビューの選択
WO2019237333A1 (en) Converting database language statements between dialects
WO2019169858A1 (zh) 一种基于搜索引擎技术的数据分析方法及系统
US20190361999A1 (en) Data analysis over the combination of relational and big data
WO2013071305A2 (en) Systems and methods for manipulating data using natural language commands
KR102368775B1 (ko) 인덱스 관리 방법, 장치, 기기 및 저장 매체
CN112015722A (zh) 数据库管理方法、数据血缘分析方法以及相关装置
CN113468204A (zh) 一种数据查询方法、装置、设备、介质
CN110309214B (zh) 一种指令执行方法及其设备、存储介质、服务器
CN113297251A (zh) 多源数据检索方法、装置、设备及存储介质
US11163766B2 (en) Unique key lookup with additional filter
CN108008947B (zh) 一种编程语句的智能提示方法、装置、服务器及存储介质
CN115827676A (zh) Sql子查询的执行方法、装置、终端设备以及介质
CN107066306B (zh) 一种动态调整bios中hii配置的方法
CN108614821B (zh) 地质资料互联互查系统
JP2022546228A (ja) 構造化及び非構造化されたデータを使用する照会の解決
US10817554B2 (en) Observation-based query interpretation model modification
Morishima et al. A data modeling and query processing scheme for integration of structured document repositories and relational databases
KR100505111B1 (ko) 데이터베이스 연산용 프로그램 소스 생성 장치 및 그방법과 이를 이용한 컴퓨터 프로그램 제품

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
GR01 Patent grant
GR01 Patent grant