数据脱敏方法与流程

文档序号:33495126发布日期:2023-03-17 20:54阅读:303来源:国知局

1.本发明属于数据库查询技术领域,特别涉及一种数据脱敏方法。


背景技术:

2.数据脱敏技术是采用数据变形的方式对敏感数据进行处理,防止隐私数据泄漏的数据处理技术。
3.数据脱敏的常规步骤为:
4.1、读取原始数据源中的敏感数据;
5.2、根据特定脱敏规则对敏感数据进行转化;
6.3、将转换后的非敏感数据写入原始数据源或新数据源。
7.在对数据库内存储的数据进行查询时,不能将脱敏后的数据直接写入数据库,以免脱敏数据覆盖原始数据,造成原始数据的丢失,这显然增加了脱敏操作的工作量。现有技术通常在数据库内写入新的数据信息,这会为数据库带来额外的存储空间开销,当数据库的数据量大、表结构复杂时,数据库迁移会带来巨大的时间和经济成本。


技术实现要素:

8.本发明的目的在于提供一种数据库查询场景下的数据脱敏方法,在不额外增加数据库运行负担的前提下能可靠保护数据库中的原始数据。
9.为实现以上目的,本发明采用的技术方案为:
10.一种数据脱敏方法,包括如下步骤:
11.a、语义解析器获取并解析查询语句;
12.b、根据查询语句对目标数据库执行查询命令,得到查询结果集并将查询结果集自目标数据库导出至脱敏执行器;
13.c、脱敏执行器对查询结果集中的数据脱敏,以生成查询结果;
14.d、完成查询。
15.与现有技术相比,本发明存在以下技术效果:在数据库中仅执行查询与导出命令,查询操作不会对数据库中存储的数据作任何更改,从而能有效保障数据安全。
具体实施方式
16.下面通过对实施例的描述,对本发明的具体实施方式作进一步详细说明。
17.一种数据脱敏方法,包括如下步骤:
18.a、语义解析器获取并解析查询语句;
19.b、根据查询语句对目标数据库执行查询命令,得到查询结果集并将查询结果集自目标数据库导出至脱敏执行器;
20.c、脱敏执行器对查询结果集中的数据脱敏,以生成查询结果;
21.d、完成查询。
22.本方法根据查询语句从目标数据库中查询得到所需的信息汇总成为查询结果集,将查询结果集导出至脱敏执行器,而后在脱敏执行器中完成数据的脱敏,这样能有效保护目标数据库中存储的数据。然而,在步骤b中,由于是对目标数据库中未脱敏的数据执行的查询操作,存在用户通过操作查询语句绕过脱敏的风险。例如,姓名字段的脱敏规则为保留姓名的第一个字符。在查询类别为姓名的字段时,每次只查询姓名中的一个字,若用户姓名为“张三”,查询姓名字段中含有“三”的信息,可以得到显示“张*”的用户信息,由此便能绕过脱敏策略获知用户“张三”的信息。
23.为防止查询请求用户通过操作查询语句绕过脱敏,本实施例在解析查询语句后,设定查询规则并按照查询规则过滤可能绕过脱敏策略的查询语句,这样就能通过主动检测查询请求的方式,保证数据脱敏的有效执行,避免敏感数据的泄露。
24.具体采用如下步骤:
25.在步骤a中,解析并判断查询语句中请求查询的内容是否符合设定的查询规则,
26.若查询语句符合查询规则,进入步骤b;
27.若查询语句不符合查询规则,拒绝查询并进入步骤d。
28.为了在保证脱敏策略良好运行的同时提升检索查询的准确性,本实施例对目标数据库中每张数据表的每一个字段都进行了定级。这样的话,目标数据库中每个字段及其与数据表的关系,都能一一对应,既保证了敏感数据脱敏标准的统一和规范,也为查询规则的准确设立提供了基础。在此基础上,本实施例中步骤a的具体步骤如下:
29.a1、获取查询语句后,从查询语句中提取以下三种信息:待查询字段、目标数据表、待查询字段与目标数据表的对应关系;
30.a2、依据待查询字段与目标数据表的对应关系对待查询字段、目标数据表进行文本组合;
31.a3、判断步骤a2中组合得到的文本是否符合预设的文本组合形式,
32.若符合,将解析后的查询语句送入目标数据库并进入步骤b,
33.若不符合,拒绝查询,进入步骤d。
34.本实施例为严格防止恶意查询语句绕过脱敏规则,在步骤a前还设有步骤k,设定允许查询的文本组合形式。
35.例如,设定允许查询文本语法规则为:目标数据表.结果集字段。
36.查询语句为:select结果集字段1,结果集字段2from目标数据表1
37.根据语义分析从上述语句中提取信息如下:
38.结果集字段:结果集字段1,结果集字段2;
39.目标数据表:目标数据表1;
40.字段与表的关系:结果集字段1、结果集字段2属于目标数据表1
41.对上述信息进行文本组合得到:
42.目标数据表1.结果集字段1,
43.目标数据表1.结果集字段2,
44.判断上述查询语句为合法查询语句,即满足查询规则,将解析后的查询语句送入目标数据库并执行查询命令。
45.不满足查询规则的查询语法示例:
46.目标数据表x.结果集字段1,
47.目标数据表1.结果集字段1的第x个字符,
48.结果集字段1+结果集字段2。
49.第一个示例中,目标数据表x表示未指定目标数据表,该语法指的是在所有的目标数据表中查询结果集字段1。
50.也就是说,本实施例满足查询规则的查询语句中,每个结果集字段必须明确指定对应的目标数据表并且只能指定一个目标数据表,不可以针对某字段对整个目标数据库进行查询,既能防止恶意查询绕开脱敏规则,又能减少数据的查询运算量,提升数据库的查询效率。在其他实施例中,根据脱敏策略,查询规则还可以进行适应性地修改。例如,为避免发生前述绕开姓名字段的脱敏事故,可要求针对姓名类目标数据表进行查询时,待查询的结果集字段必须是完整的字段,即包含该字段的全部字符,这样在步骤b中,设定待查询的姓名类结果集字段与姓名类目标数据表中的字段完全相符时,尤其是不能缺少字符且字符顺序相同时,才输出对应的查询结果。这样的话,当且仅当查询语句为,“姓名.张三”时,才能查询到姓名为“张三”的用户信息,查询“张”、“三”、“张三四”、“三张”时,都无法查询姓名为用户“张三”的信息。
51.需要说明的是,查询规则的确立需要在脱敏查询前完成,即需要在步骤a前确立查询规则,定义为步骤k,本实施例先设定允许查询的文本组合形式,在线工作时,通过比对查询语句解析后得到的组合文本与设定的文本组合形式,来实施查询规则。
52.另外,本实施例在步骤k中,还为目标数据库的各数据表分别确定脱敏级别,匹配各用户的脱敏权限,并按照各脱敏级别、脱敏权限为各数据表匹配脱敏算法形成脱敏执行器。
53.在步骤a中,语义解析器在获取查询语句的同时获取用户的权限,解析查询语句后判断请求查询的内容是否超出用户权限,
54.若超出用户权限,拒绝查询,进入步骤d,
55.若未超出用户权限,步骤a2组合得到的文本及用户权限送入目标数据库并进入步骤b。
56.在步骤b中,数据库基于步骤a2组合得到的文本执行查询命令,复制目标数据库的查询结果得到查询结果集,将查询结果集及用户权限类别导出至脱敏执行器;
57.所述的步骤c中,脱敏执行器依据用户权限类别,对查询结果集中的内容,按照步骤k预设的脱敏算法对数据进行脱敏。
58.这样语义解析器解析查询语句的同时获取查询用户的权限,根据前述信息判断用户请求查询的信息是否符合权限,拒绝不符合权限的查询,确保送入目标数据库进行查询的请求都是符合脱敏权限的查询,能进一步防止绕过查询策略情况的发生,并减少目标数据库的查询计算量。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1