一种基于语法树解析和血缘关系的SQL改写动态脱敏方法与流程

文档序号:36404072发布日期:2023-12-16 09:50阅读:30来源:国知局
本发明数据安全,具体涉及到一种基于语法树解析和血缘关系的sql改写动态脱敏方法。
背景技术
::1、现有的数据脱敏方法主要包括数据库代理结果集脱敏、应用层结果集脱敏、api层结果集脱敏、数据库代理sql改写、混脱(数据代理sql改写+api结果集脱敏)。其中,数据库代理结果集脱敏存在的问题包括:代理服务器在应用系统和应用数据库之间,高风险,一旦代理服务器出现问题会导致整个应用系统不可用,代理服务器在应用系统和应用数据库之间,获取不到应用数据库的表结构,在返回结果时如果存在相同字段,确定不了字段是来自于哪个表,无法根据表级别字段进行脱敏,应用系统数据库不具备脱敏能力,可绕过代理直接访问应用数据库,存在绕过风险,结果集脱敏是在接收到返回数据包后解析成结果集,再逐行完成解析与脱敏,效率低;应用层结果集脱敏方法存在的问题包括:使用代理模式,风险高,一旦代理服务器出现问题会导致产品不可用,需要对访问的业务功能充分了解才能对返回字段进行脱敏规则配置,学习成本高,配置复杂,需对每个应用、每个接口、每个字段进行脱敏配置,工作量大,只能针对http协议进行脱敏,无法对其他协议数据进行脱敏,无法对系统之间流转的数据进行脱敏,应用数据库不具备脱敏能力,可绕过代理直接访问应用数据库,存在绕过风险,结果集脱敏是在接收到返回数据包后解析成结果集,再逐行完成解析与脱敏,效率低;api层结果集脱敏存在的问题包括:由于api脱敏无脱敏规则配置平台,无法对配置进行统一维护,维护成本高,需要对访问的业务功能充分了解才能对返回字段进行脱敏规则配置,学习成本高,应用数据库不具备脱敏能力,可绕过代理直接访问应用数据库,存在绕过风险,结果集脱敏是在接收到返回数据包后解析成结果集,再逐行完成解析与脱敏,效率低。数据库代理sql改写存在的问题包括:代理服务器在应用系统和应用数据库之间,高风险,一旦代理服务器出现问题会导致整个应用系统不可用,代理服务器在应用系统和应用数据库之间,获取不到应用数据库的表结构,当sql查询语句为select*时对*无法翻译,无法根据字段进行脱敏,应用数据库不具备脱敏能力,可绕过代理直接访问应用数据库,存在绕过风险;混脱(数据代理sql改写+api结果集脱敏)脱敏方法存在的问题包括:数据库代理和应用端都需要维护,维护成本高,两端配合脱敏,不能保证没有遗漏的情况,代理服务器在应用系统和应用数据库之间,高风险,一旦代理服务器出现问题会导致整个应用系统不可用,应用数据库不具备脱敏能力,可绕过代理直接访问应用数据库,存在绕过风险;总之,现有的数据脱敏方法主要存在不具备脱敏能力,存在绕过风险;应用层、api层、数据库代理结果集脱敏技术方案效率低、配置复杂、实施难度高;数据库代理sql改写翻译不了select*语句,处理不了复杂sql等一些问题,急需开发一种新的数据脱敏方法以解决现有技术中的缺点。技术实现思路1、为了解决现有数据脱敏过程中存在的一些缺点,本发明提供了一种基于语法树解析和血缘关系的sql改写动态脱敏方法;在动态脱敏过程中,将包含字段*的原sql查询语句转译,对原有的*字段进行替换,替换成表字段详情;对转译后的语句进行血缘分析,根据sql语法树的结构循环分析查询语句的字段来自于哪个源表,由此精准定位到表级别字段脱敏。该技术方案包括如下内容:2、一种基于语法树解析和血缘关系的sql改写动态脱敏方法,所述的sql改写动态脱敏程序以插件的方式安装在数据库服务端,对服务端接收到的sql进行语法解析、转译、血缘分析、脱敏。3、优选地,所述的基于语法树解析和血缘关系的sql改写动态脱敏方法包括如下步骤:4、步骤一、使用语法树解析工具对sql进行解析,解析后可对语法树进行增删改查操作;5、步骤二、过滤出查询语句,对查询语句字段进行判断,将包含字段*的原sql查询语句转译,对原有的*字段进行替换,替换成表字段详情;6、步骤三、对转译后的查询语句进行血缘分析,根据sql语法树的结构循环分析查询语句的字段来自于哪个源表;7、步骤四、根据字段与相关敏感字段的血缘关系,对字段包含表字段名的查询语句可以从查询上下文中获取表字段详情并进行sql转译然后脱敏进行是否脱敏处理;8、步骤五、将改写后的sql语句执行编译和生成执行计划。9、优选地,所述的基于语法树解析和血缘关系的sql改写动态脱敏方法中所述的sql改写动态脱敏程序使用数据库自带的函数进行脱敏,所有脱敏工作由数据库来完成。10、优选地,所述的基于语法树解析和血缘关系的sql改写动态脱敏方法是通过插件的方式安装在数据库服务端,可随数据库扩容和缩容。11、本方案相较于现有技术,具有如下优点:12、1、本脱敏方法只需安装脱敏插件即可,无需其他部署方式,部署和维护成本低。13、2、本脱敏方法是通过插件的方式安装在数据库服务端,使数据库具有脱敏能力,不存在绕过风险。14、3、本脱敏方法是通过插件的方式安装在数据库服务端,可随数据库扩容和缩容。15、4、不同于结果集脱敏是通过查询完结果集后在应用层脱敏,本脱敏方法是在服务端并通过sql改写的方式进行脱敏,sql改写脱敏使用数据库自带的函数进行脱敏,所有脱敏工作由数据库来完成,效率高。16、5、脱敏是在服务端中,对字段包含*的查询语句可以从查询上下文中获取表字段详情并进行sql转译然后脱敏。17、6、可对复杂sql进行脱敏,多表join或子查询情况下可通过血缘分析出最终(最外层)查询字段来自于哪个表,并对字段进行脱敏,脱敏字段而不是脱敏表。例如:原sql语句select tableb.id,tableb.name from(select id,name from tablea)as tableb,脱敏表的方式将tablea表替换成子查询在子查询中对name字段使用遮盖函数select tableb.id,tableb.name from(select id,name from(select id,replace(name,'0','1','*')fromtablea))as tableb,本脱敏方法是脱敏字段将最终(最外层)查询字段name使用遮盖函数select tableb.id,replace(tableb.name,'0','1','*')from(select id,name fromtablea)as tableb。技术特征:1.一种基于语法树解析和血缘关系的sql改写动态脱敏方法,其特征在于:所述的sql改写动态脱敏程序以插件的方式安装在数据库服务端,对服务端接收到的sql进行语法解析、转译、血缘分析、脱敏。2.根据权利要求1所述的基于语法树解析和血缘关系的sql改写动态脱敏方法,其特征在于所述的脱敏方法包括如下步骤:3.根据权利要求2所述的基于语法树解析和血缘关系的sql改写动态脱敏方法,其特征在于所述的sql改写动态脱敏程序使用数据库自带的函数进行脱敏,所有脱敏工作由数据库来完成。4.根据权利要求2所述的基于语法树解析和血缘关系的sql改写动态脱敏方法,其特征在于所述的脱敏方法是通过插件的方式安装在数据库服务端,可随数据库扩容和缩容。技术总结本发明涉及到数据安全
技术领域
:,具体涉及到一种基于语法树解析和血缘关系的SQL改写动态脱敏方法;在动态脱敏过程中,将包含字段*的原SQL查询语句转译,对原有的*字段进行替换,替换成表字段详情;对转译后的语句进行血缘分析,根据SQL语法树的结构循环分析查询语句的字段来自于哪个源表,由此精准定位到表级别字段脱敏。该技术方案包括如下内容:一种基于语法树解析和血缘关系的SQL改写动态脱敏方法,所述的SQL改写动态脱敏程序以插件的方式安装在数据库服务端,对服务端接收到的SQL进行语法解析、转译、血缘分析、脱敏。技术研发人员:张涛,杜启辉,王水兵,张浩程,高艳兵,符帅东,王世纪受保护的技术使用者:杭州用九智汇科技有限公司技术研发日:技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1