[发明专利]一种基于SQL语句改写的动态脱敏方法在审
申请号: | 201711222369.7 | 申请日: | 2017-11-29 |
公开(公告)号: | CN107885876A | 公开(公告)日: | 2018-04-06 |
发明(设计)人: | 杨海峰;吴智勇 | 申请(专利权)人: | 北京安华金和科技有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F21/62 |
代理公司: | 天津盛理知识产权代理有限公司12209 | 代理人: | 王利文 |
地址: | 100081 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 sql 语句 改写 动态 方法 | ||
技术领域
本发明属于信息安全技术领域,涉及一种数据库敏感信息保护技术,尤其是一种基于SQL语句改写的动态脱敏方法。
背景技术
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。对于关系型数据库,无论使用命令行模式,还是使用客户端工具,都通过sql语句来实现相关的数据操作。
随着企业的发展,业务数据不断增长,随之而来的是数据相关工作的开展。越来越多的分析和数据挖掘都是以真实生产数据为基础进行,数据在使用过程中,面临数据安全的问题。为保障数据分析人员对数据的使用,同时降低数据泄露的风险,所以需要动态脱敏的需求。
而动态脱敏可以对结果集进行脱敏,也可以对sql语句进行替换,达到脱敏的效果。对比这两种脱敏方法,对结果集进行脱敏的方法,脱敏时间是与结果集的数量正相关的。而对sql语句进行替换,理论上脱敏时间应该是一个相对恒定的值。因此,如何高效、安全地对敏感数据进行保护是目前迫切需要解决的问题。
发明内容
本发明的目的在于克服现有技术的不足,提出一种设计合理、高效安全的基于SQL语句改写的动态脱敏方法。
本发明解决其技术问题是采取以下技术方案实现的:
一种基于SQL语句改写的动态脱敏方法,包括以下步骤:
步骤1:判断当前语句是否为查询语句时,如果是查询语句,则进行分词操作,并按照sql语句的顺序指明其类型长度信息,生成分词后的结构化信息;
步骤2:对分词之后的sql语句进行分析,从中识别出敏感字段,如果是敏感字符串,则根据结合用户设置的规则,将敏感字符串做相应替换,最终将查询语句替换为脱敏语句。
步骤3、将脱敏语句在数据库上执行,最终脱敏字段返回脱敏结果。
所述分词操作是针对查询语句进行的;对于查询语句得到一个指定各种类型的词语链表;对于全表查询语句,需要将当前表中包含的字段全部组织到这个查询语句中,然后再对这条语句进行分词处理。
所述用户设置的规则包括敏感字段和敏感算法。
本发明的优点和积极效果是:
1、本动态脱敏算法操作的对象是查询语句,在理想状态下,消耗的时间与脱敏字段的个数成正比例关系,由于其不受查询的结果集大小的影响,因此效率会比较高。
2、本动态脱敏算法可以直接应用在生产环境中,通过对用户的权限控制,实现对敏感数据的动态保护功能。
附图说明
图1是本发明对查询语句进行分词的逻辑流程图;
图2是本发明的主处理程序;
图3是本发明的查询处理逻辑;
图4是本发明的字符串处理子函数。
具体实施方式
以下结合附图对本发明做进一步详述。
本发明是将sql语句标记成各种类型的对象,通过定义不同对象的不同属性,结合用户设置的规则(敏感字段,脱敏算法)将敏感字段识别出来,并最终使用用户设置的规则对sql语句中的敏感字段进行替换。
本发明包含两个部分内容,第一部分是分词,第二部分是脱敏替换逻辑。下面对分词的原则进行说明,首先定义如下概念:
普通字符串(BS):符合数据库关键字定义的普通字符串。
比较运算符(CO):大于、小于、等于、不等于、BETWEEN、LIKE、EXISTS、IN、NOT、ISNULL、CASE、WHEN、DECODE。
字段终结符(EO):标识字段的终结,包括:逗号、FROM、THEN、ELSE、’、|。
保持别名符(AO):标识保持别名的字符,包括:空格、换行回车、TAB、AS、END。
别名字符串(AS):数值、右括号、普通字符串(BS)、单引号、双引号、NULL。
空字符(NS):空格、换行回车、TAB。
字段废弃符(DS):当一个普通字符串后面跟着这些字符时,表示该普通字符串不能用于脱敏,这样的字符包括:左括号。
别名终结符(EA):逗号和FROM。
别名起始符(SA):
oracle:SELECT、DISTINCT、UNIQUE、ALL、逗号。
mysql:ALL、DISTINCT、DISTINCTROW、HIGH_PRIORITY、STRAIGHT_JOIN、SQL_SMALL_RESULT、SQL_BIG_RESULT、SQL_BUFFER_RESULT、SQL_CACHE、SQL_NO_CACHE、SQL_CALC_FOUND_ROWS、逗号、LOW_PRIORITY。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京安华金和科技有限公司,未经北京安华金和科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711222369.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种汽车
- 下一篇:具有进气口的机动车辆底板装饰板