一种基于SQL血缘关系的数据安全查询方法、装置和设备制造方法及图纸

技术编号:33127918 阅读:17 留言:0更新日期:2022-04-17 00:40
本发明专利技术公开一种基于SQL血缘关系的数据安全查询方法、装置和设备,包括,接收并对客户端传入的SQL语句进行语法检测,若检测结果正确,则将所述SQL语句转换为抽象语法树;递归查找抽象语法树中最终展示字段的数据来源字段,并将最终展示字段和数据来源字段抽象封装为血缘关系对象;基于血缘关系对象,查询标记表,所述标记表由可查询数据库表中的字段信息配置得到,所述标记表包括字段是否为敏感信息以及敏感信息的字段名称和掩码方式;确定数据来源字段是否为敏感信息,如果是,则获取敏感信息的字段名称和掩码方式;执行SQL语句,得到数据查询结果,根据获取的敏感字段名称和掩码方式,对查询结果集做掩码处理,展示掩码处理后的结果集。的结果集。的结果集。

【技术实现步骤摘要】
一种基于SQL血缘关系的数据安全查询方法、装置和设备


[0001]本专利技术涉及计算机应用和个人隐私数据安全领域,具体涉及一种基于SQL血缘关系的数据安全查询方法。

技术介绍

[0002]在数据存储组件中存储的数据,一般除了用户密码在存储之前做加密处理后存储,其余个人数据如电话、邮箱、银行卡号等明文存储。对数据做业务查询时,会存在个人数据明文展示情况。上述情况导致个人隐私数据泄露,存在安全风险。
[0003]现有技术中,目前存储系统数据加密领域,对加密真实性的验证方案都需要专门的配套工具或极其复杂的操作步骤,加密方案不存在普适性和可推广性,且占用系统资源,耗时长,存在使系统性能降低的问题。
[0004]经检索发现,公开号CN113204776A的中国专利于2021年8月3日公开了实现列加密的方法、装置、设备及存储介质,用于解决数据库表不支持列加密及查询的技术问题。本公开通过对SQL引擎进行改进,在创建表时设置表属性,在表属性中设置加密列属性、加密秘钥属性等。在执行插入SQL语句时,使用秘钥对加密列数据进行加密存储,在执行查询SQL语句时,通过秘钥对加密列数据进行解密。
[0005]但是,该专利对SQL语句进行分析需要侵入SQL执行过程中,并且对数据根据密钥和加密算法进行加密处理,复杂度更高,容错率低,仍然存在加密算法占用系统资源,耗时长的问题,无疑会降低系统性能。

技术实现思路

[0006]为克服上述现有技术的不足,本专利技术提供一种基于SQL血缘关系的数据安全查询方法、装置和设备,仅需在SQL执行前分析记录血缘关系,对SQL查询后的结果做掩码处理,流程简单,容错率高,掩码处理速度快,对系统资源占用几乎可忽略,性能更高。
[0007]本专利技术一方面提供一种基于SQL血缘关系的数据安全查询方法,包括,接收并对客户端传入的SQL语句进行语法检测,若检测结果正确,则将所述SQL语句转换为抽象语法树;递归查找抽象语法树中最终展示字段的数据来源字段,并将最终展示字段和数据来源字段抽象封装为血缘关系对象;基于血缘关系对象,查询标记表,所述标记表由可查询数据库表中的字段信息配置得到,所述标记表包括字段是否为敏感信息以及敏感信息的字段名称和掩码方式;确定数据来源字段是否为敏感信息,如果是,则获取敏感信息的字段名称和掩码方式;执行SQL语句,得到数据查询结果,根据获取的敏感信息的字段名称和掩码方式,对查询结果做掩码处理,展示掩码处理后的结果集。
[0008]上述技术方案中,能够接收并分析转换客户端传入的SQL语句为抽象语法树,并抽象提取出抽象语法树中最终展示字段与数据源字段的血缘关系对象,针对血缘关系对象,在标记表中获取敏感信息的字段名称和掩码方式;根据敏感信息将结果集做相应的掩码处理,实现了高效率、高速度地对可查询数据库表中的字段信息进行掩码处理。
[0009]具体地,对于复杂SQL语句能够添加递归次数,查找深度等条件,限制血缘关系查找的复杂度,降低对计算机cpu、内存等的占用情况。
[0010]进一步地,所述字段信息为个人信息的字段信息。
[0011]具体地,对不同类型的个人数据做不同的掩码处理。如手机号显示首3末4位,中间用*号隐藏代替:138****4213;银行卡显示首6末4位,中间用4个*号隐藏代替:622202****4123;邮箱像是前两位及最后一位字符,及@后邮箱域名信息:ye****y@163.com等处理方式。
[0012]进一步地,对所述SQL进行语法检测前还包括如下步骤:在开源语法分析器基础上,增加适配,使语法分析器能够同时适用于HIVE、PRESTO、MYSQL、FLINK、SPARK、POSTGRE、ORACLE数据存储组件。以便于该方法可以适用多种数据存储组件的SQL方言。
[0013]进一步地,对客户端传入的SQL语句进行语法检测,若检测结果错误,则接收SQL语句的类型,输出对应数据存储组件的SQL方言规则,展示后结束。
[0014]具体地,对应的数据存储组件根据选择的数据存储方式决定,包括HIVE、PRESTO、MYSQL、FLINK、SPARK、POSTGRE、ORACLE等。
[0015]进一步地,将词片类型与词片血缘关系作为判断条件,递归查找抽象语法树中最终展示字段的数据来源字段,最终展示字段与数据源字段之间为一对一或一对多的关系。
[0016]具体地,递归查找抽象语法树中最外层TOK_TABLE_OR_COL词片与内层TOK_TABLE_OR_COL词片的对应关系。此外,本方法仅记录血缘关系中顶层展示字段和最底层数据来源字段的祖关系。
[0017]进一步地,所述标记表还包括可查询数据库表的库名、表名,所述库名、表名与字段是否为敏感信息以及敏感信息的字段名称和掩码方式相对应。
[0018]进一步地,通过可查询数据库表的库名和表名,查询数据来源字段是否为敏感信息。
[0019]具体地,根据用户选择的数据存储组件执行SQL获取结果集,对结果集遍历处理每行结果数据,将与数据源字段对应的展示字段做相应的掩码处理。
[0020]本专利技术另一方面提供一种基于SQL血缘关系的数据安全查询装置,包括,语法检测模块,接收并对客户端传入的SQL语句进行语法检测,若检测结果正确,则将所述SQL语句转换为抽象语法树;血缘查找模块,递归查找抽象语法树中最终展示字段的数据来源字段,并将最终展示字段和数据来源字段抽象封装为血缘关系对象;敏感信息查询模块,基于血缘关系对象,查询标记表,所述标记表由可查询数据库表中的字段信息配置得到,所述标记表包括字段是否为敏感信息以及敏感信息的字段名称和掩码方式;敏感信息获取模块,确定数据来源字段是否为敏感信息,如果是,则获取敏感信息的字段名称和掩码方式;掩码处理模块,执行SQL语句,得到数据查询结果,根据获取的敏感信息的字段名称和掩码方式,对查询结果做掩码处理,展示掩码处理后的结果集。
[0021]本专利技术还一方面提供一种设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行基于SQL血缘关系的数据安全查询方法的步骤。
[0022]与现有技术相比,本专利技术的有益效果包括:
[0023](1)本专利技术能够接收并分析转换客户端传入的SQL语句为抽象语法树,并抽象提取
出抽象语法树中最终展示字段与数据源字段的血缘关系对象,针对血缘关系对象,在配置字段信息的标记表中获取敏感信息的字段名称和掩码方式;根据敏感字段信息将结果集做相应的掩码处理,实现了高效率、高速度地对可查询数据库表中的字段信息进行掩码处理;
[0024](2)本专利技术应用于客户端,在SQL提交时即在客户端分析SQL语句,根据血缘关系与在标记表中配置的可查询数据表中的个人信息字段和处理编码,记录需要加密处理的列,对资源的占用分摊到各个客户端,减少SQL引擎压力;相比于应用于SQL引擎所在的设备,减轻SQL引擎所在设备的负担;
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于SQL血缘关系的数据安全查询方法,其特征在于,包括,接收并对客户端传入的SQL语句进行语法检测,若检测结果正确,则将所述SQL语句转换为抽象语法树;递归查找抽象语法树中最终展示字段的数据来源字段,并将最终展示字段和数据来源字段抽象封装为血缘关系对象;基于血缘关系对象,查询标记表,所述标记表由可查询数据库表中的字段信息配置得到,所述标记表包括字段是否为敏感信息以及敏感信息的字段名称和掩码方式;确定数据来源字段是否为敏感信息,如果是,则获取敏感信息的字段名称和掩码方式;执行SQL语句,得到数据查询结果,根据获取的敏感信息的字段名称和掩码方式,对查询结果做掩码处理,展示掩码处理后的结果集。2.根据权利要求1所述的一种基于SQL血缘关系的数据安全查询方法,其特征在于,所述字段信息为个人信息的字段信息。3.根据权利要求1所述的一种基于SQL血缘关系的数据安全查询方法,其特征在于,对所述SQL进行语法检测前还包括如下步骤:在开源语法分析器基础上,增加适配,使语法分析器能够同时适用于HIVE、PRESTO、MYSQL、FLINK、SPARK、POSTGRE、ORACLE数据存储组件。4.根据权利要求1所述的一种基于SQL血缘关系的数据安全查询方法,其特征在于,对客户端传入的SQL语句进行语法检测,若检测结果错误,则接收SQL语句的类型,输出对应数据存储组件的SQL方言规则,展示后结束。5.根据权利要求1所述的一种基于SQL血缘关系的数据安全查询方法,其特征在于,将词片类型与词片血缘关系作为判断条件,递归查找抽象语法树中最终展示字段的数据来源字段,最终展示字段与...

【专利技术属性】
技术研发人员:葛军李文义张启亮黄凯
申请(专利权)人:徐工汉云技术股份有限公司
类型:发明
国别省市:

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

1