数据脱敏方法、装置、存储介质及计算机设备制造方法及图纸

技术编号:24251824 阅读:44 留言:0更新日期:2020-05-22 23:43
本发明专利技术实施例提供一种数据脱敏方法、装置、存储介质及计算机设备,该方法包括:接收用户发送的SQL语句;判断SQL语句是否包含有预设脱敏清单中的敏感表,若判断出SQL语句包含有预设脱敏清单中的敏感表,则判断SQL语句包含的敏感表所要查询的数据列中是否包含有脱敏清单中与敏感表对应的敏感列;若是,则根据解析结果确定SQL语句的返回列,并判断SQL语句的返回列中是否包含敏感列或者与敏感列具有血缘关系的列;若SQL语句返回列中包含敏感列或与敏感列具有血缘关系的列,则将返回列中包含的敏感列或者与脱敏列具有血缘关系的列确定为目标脱敏列,并将SQL语句中用于访问目标脱敏列的语句替换为自定义的脱敏函数,上述方法能提高数据脱敏的精确性。

Data desensitization method, device, storage medium and computer equipment

【技术实现步骤摘要】
数据脱敏方法、装置、存储介质及计算机设备
本专利技术涉及大数据领域,具体涉及一种数据脱敏方法、装置、存储介质及计算机设备。
技术介绍
数据脱敏,是指对敏感数据通过脱敏规则进行数据的变形,实现对敏感数据的可靠保护,以便在开发、测试和其它非生产环境以及外包环境中安全地使用脱敏后的真实数据集(或称脱敏数据)而不至信息泄漏。现有的脱敏工具分静态脱敏和动态脱敏,静态脱敏工具是对指定表或者列使用特定规则将数据批量脱敏后加载至另外一张新表提供给用户使用,这种脱敏方式只适合线下脱敏,不适合在线查询即时脱敏,且脱敏的数据经过加工后的数据失真,不能完全体现业务数据价值。而动态脱敏是根据查询出来的数据,对每条数据进行基于规则进行即时脱敏,该种方式可以实现线上脱敏,但是由于实际的业务场景比较复杂,在脱敏时容易造成误判,例如对不该脱敏的数据进行脱敏,脱敏精确性低,影响业务使用。
技术实现思路
本专利技术实施例提供一种数据脱敏方法、装置、存储介质及计算机设备,用于解决现有技术中的数据脱敏精确性低的问题。第一方面,本专利技术实施例提供了一种数据脱敏方法,所述方法包括:接收用户发送的SQL语句,所述SQL语句为结构化查询语句select语句;对所述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语句为结构化查询语句select语句;解析模块,用于对所述SQL语句进行解析,根据解析结果判断所述SQL语句是否包含有预设脱敏清单中的敏感表,若判断出所述SQL语句包含有预设脱敏清单中的敏感表,则判断所述SQL语句包含的敏感表所要查询的数据列中是否包含有所述脱敏清单中与所述敏感表对应的敏感列;判断模块,用于当包含的所述敏感表所要查询的数据列中包含所述脱敏清单中的与所述敏感表对应的敏感列时,根据所述解析结果确定所述SQL语句的返回列,并判断所述SQL语句的返回列中是否包含所述敏感列或者与所述敏感列具有血缘关系的列;替换模块,用于当判断出所述SQL语句包含的所述敏感表所要查询的数据列中包含有所述脱敏清单中与所述敏感表对应的敏感列,则根据所述解析结果确定所述SQL语句的返回列,并判断所述SQL语句的返回列中是否包含所述敏感列或者与所述敏感列具有血缘关系的列;及执行模块,用于执行替换后的SQL语句,并输出查询结果。可选地,所述解析模块包括:解析单元,用于对所述SQL语句进行词法解析及语法解析,得到所述SQL语句对应的抽象语法树;第一确定单元,用于根据所述抽象语法树确定所述SQL语句所包含的数据表;第一判断单元,用于判断所述SQL语句所包含的数据表中是否包含有所述预设脱敏清单中的敏感表;及第二判断单元,用于当判断出所述SQL语句所要查询的数据表中包含有所述预设脱敏清单中的敏感表,则根据所述抽象语法树确定所述SQL语句包含的敏感表所要查询的数据列,并判断所述数据列中是否包含有所述脱敏清单中的与所述敏感表对应的敏感列。可选地,所述判断模块包括:所述判断模块包括:分析单元,用于根据所述抽象语法树对所述SQL语句的语义特征进行分析,确定所述SQL语句的返回列;第三判断单元,用于根据所述抽象语法树判断所述SQL语句的返回列是否包含与所述敏感列相关的列;及第二确定单元,用于当所述SQL语句的返回列为与所述敏感列相关的列时,确定所述与所述敏感列相关的列为与所述敏感列具有血缘关系的列。第三方面,本专利技术实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述方法。第四方面,本专利技术实施例提供了一种计算机设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,所述程序指令被处理器加载并执行时实现上述方法。可以理解,本专利技术通过先确定SQL语句中包含的敏本文档来自技高网...

【技术保护点】
1.一种数据脱敏方法,其特征在于,所述方法包括:/n接收用户发送的SQL语句,所述SQL语句为结构化查询语句select语句;/n对所述SQL语句进行解析,根据解析结果判断所述SQL语句是否包含有预设脱敏清单中的敏感表,若判断出所述SQL语句包含有预设脱敏清单中的敏感表,则判断所述SQL语句包含的敏感表所要查询的数据列中是否包含有所述脱敏清单中与所述敏感表对应的敏感列;/n若判断出所述SQL语句包含的所述敏感表所要查询的数据列中包含有所述脱敏清单中与所述敏感表对应的敏感列,则根据所述解析结果确定所述SQL语句的返回列,并判断所述SQL语句的返回列中是否包含所述敏感列或者与所述敏感列具有血缘关系的列;/n若判断出所述SQL语句的返回列中包含所述敏感列或者与所述敏感列具有血缘关系的列,则将所述返回列中包含的所述敏感列或者与所述脱敏列具有血缘关系的列确定为目标脱敏列,并将所述SQL语句中用于访问所述目标脱敏列的语句替换为自定义的脱敏函数,所述脱敏函数用于将所述目标脱敏列对应的字符转换为预先设置的特殊字符;/n执行替换后的SQL语句,并输出查询结果。/n

【技术特征摘要】
1.一种数据脱敏方法,其特征在于,所述方法包括:
接收用户发送的SQL语句,所述SQL语句为结构化查询语句select语句;
对所述SQL语句进行解析,根据解析结果判断所述SQL语句是否包含有预设脱敏清单中的敏感表,若判断出所述SQL语句包含有预设脱敏清单中的敏感表,则判断所述SQL语句包含的敏感表所要查询的数据列中是否包含有所述脱敏清单中与所述敏感表对应的敏感列;
若判断出所述SQL语句包含的所述敏感表所要查询的数据列中包含有所述脱敏清单中与所述敏感表对应的敏感列,则根据所述解析结果确定所述SQL语句的返回列,并判断所述SQL语句的返回列中是否包含所述敏感列或者与所述敏感列具有血缘关系的列;
若判断出所述SQL语句的返回列中包含所述敏感列或者与所述敏感列具有血缘关系的列,则将所述返回列中包含的所述敏感列或者与所述脱敏列具有血缘关系的列确定为目标脱敏列,并将所述SQL语句中用于访问所述目标脱敏列的语句替换为自定义的脱敏函数,所述脱敏函数用于将所述目标脱敏列对应的字符转换为预先设置的特殊字符;
执行替换后的SQL语句,并输出查询结果。


2.如权利要求1所述的方法,其特征在于,所述对所述SQL语句进行解析,根据解析结果判断所述SQL语句是否包含有预设脱敏清单中的敏感表,若判断出所述SQL语句包含有预设脱敏清单中的敏感表,则判断所述SQL语句包含的所述敏感表所要查询的数据列中是否包含所述脱敏清单中与所述敏感表对应的敏感列,包括:
对所述SQL语句进行词法解析及语法解析,得到所述SQL语句对应的抽象语法树;
根据所述抽象语法树确定所述SQL语句所包含的数据表;
判断所述SQL语句所包含的数据表中是否包含有所述预设脱敏清单中的敏感表;
若判断出所述SQL语句所要查询的数据表中包含有所述预设脱敏清单中的敏感表,则根据所述抽象语法树确定所述SQL语句包含的敏感表所要查询的数据列,并判断所述数据列中是否包含有所述脱敏清单中的与所述敏感表对应的敏感列。


3.如权利要求2所述的方法,其特征在于,所述根据所述解析结果确定所述SQL语句的返回列,并判断所述SQL语句的返回列中是否包含与所述敏感列具有血缘关系的列,包括:
根据所述抽象语法树对所述SQL语句的语义特征进行分析,确定所述SQL语句的返回列;
根据所述抽象语法树判断所述SQL语句的返回列是否包含与所述敏感列相关的列;
若是,则确定所述与所述敏感列相关的列为与所述敏感列具有血缘关系的列。


4.如权利要求2所述的方法,其特征在于,所述对所述SQL语句进行词法解析及语法解析,得到与所述SQL语句对应的抽象语法树,包括:
对所述SQL语句进行分解,得到若干个单词,根据所述若干个单词构造出单词链;
对所述单词链进行语法结构分析,构造出与所述SQL语句对应的抽象语法树。


5.如权利要求1所述的方法,其特征在于,所述接收用户发送的SQL语句,包括:
接收用户发送的SQL语句以及用户标识;
将所述返回列中...

【专利技术属性】
技术研发人员:徐杰
申请(专利权)人:平安银行股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1