【技术实现步骤摘要】
数据脱敏方法、装置、存储介质及计算机设备
本专利技术涉及大数据领域,具体涉及一种数据脱敏方法、装置、存储介质及计算机设备。
技术介绍
数据脱敏,是指对敏感数据通过脱敏规则进行数据的变形,实现对敏感数据的可靠保护,以便在开发、测试和其它非生产环境以及外包环境中安全地使用脱敏后的真实数据集(或称脱敏数据)而不至信息泄漏。现有的脱敏工具分静态脱敏和动态脱敏,静态脱敏工具是对指定表或者列使用特定规则将数据批量脱敏后加载至另外一张新表提供给用户使用,这种脱敏方式只适合线下脱敏,不适合在线查询即时脱敏,且脱敏的数据经过加工后的数据失真,不能完全体现业务数据价值。而动态脱敏是根据查询出来的数据,对每条数据进行基于规则进行即时脱敏,该种方式可以实现线上脱敏,但是由于实际的业务场景比较复杂,在脱敏时容易造成误判,例如对不该脱敏的数据进行脱敏,脱敏精确性低,影响业务使用。
技术实现思路
本专利技术实施例提供一种数据脱敏方法、装置、存储介质及计算机设备,用于解决现有技术中的数据脱敏精确性低的问题。第一方面,本专利技术实施例提供了一种数据脱敏方法,所述方法包括:接收用户发送的SQL语句,所述SQL语句为结构化查询语句select语句;对所述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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。