一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据访问方法、装置、存储介质及电子装置与流程

2022-02-20 19:30:29 来源:中国专利 TAG:


1.本发明实施例涉及通信领域,具体而言,涉及一种数据访问方法、装置、存储介质及电子装置。


背景技术:

2.随着大数据时代的来临,用户隐私泄露问题日益严重。与此同时,各种大数据技术层出不穷,新的技术架构、支撑平台和大数据软件不断涌现,使得数据安全及隐私保护技术面临更大的挑战。
3.在相关技术中,为保护某些高度敏感信息(如信用卡、姓名和身份证号码或者对其他被认为是关键的数据)通常采用权限控制及透明加密技术,透明加密通过在数据库层执行数据加密,阻止可能的攻击者绕过数据库直接从存储读取敏感信息。通过数据库权限验证的应用和用户可以继续透明地访问加密数据,而尝试读取表空间文件中的敏感数据的操作系统用户以及尝试读取磁盘或备份信息的不法之徒将不允许访问明文数据。与此同时,特权账户可以访问数据库中的任何应用程序数据。由于特权帐户和角色可以不受限制地访问数据库,因此也成为黑客的主要攻击目标,还可能被内部人员滥用以获取机密信息,通过透明加密及权限往往对特权用户无效。因此,相关技术仅通过权限作为敏感字段保护的前提和主要手段,保护粒度较粗,存在安全隐患。
4.由此可知,相关技术中存在数据保护粒度较粗,存在安全隐患的问题。
5.针对相关技术中存在的上述问题,目前尚未提出有效的解决方案。


技术实现要素:

6.本发明实施例提供了一种数据访问方法、装置、存储介质及电子装置,以至少解决相关技术中存在的数据保护粒度较粗,存在安全隐患的问题。
7.根据本发明的一个实施例,提供了一种数据访问方法,包括:接收用于请求对数据库中的数据进行访问的第一访问请求;对所述第一访问请求进行解析,获取与所述第一访问请求所对应的以下数据:第一访问参数、第一请求类型以及第一受控字段列表;基于所述第一访问参数以及所述第一请求类型对所述第一受控字段列表执行第一数据保护操作,得到目标结果;基于所述目标结果合成第二访问请求,并基于所述第二访问请求对所述数据库中的数据进行访问,以得到访问结果。
8.根据本发明的另一个实施例,提供了一种数据访问装置,包括:接收模块,用于接收用于请求对数据库中的数据进行访问的第一访问请求;获取模块,用于对所述访问请求进行解析,获取与所述第一访问请求所对应的以下数据:第一访问参数、第一请求类型以及第一受控字段列表;执行模块,用于基于所述第一访问参数以及所述第一请求类型对所述第一受控字段列表执行第一数据保护操作,得到目标结果;访问模块,用于基于所述目标结果合成第二访问请求,并基于所述第二访问请求对所述数据库中的数据进行访问,以得到访问结果。
9.根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
10.根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
11.通过本发明,解析用于请求对数据库中的数据进行访问的第一访问请求,以得到与第一访问请求所对应的第一访问参数、第一请求类型以及第一受控字段列表,根据第一访问参数以及第一请求类型对第一受控字段列表执行第一数据保护操作,得到目标结果,再根据目标结果合成第二访问请求,并利用第二访问请求对数据库中的数据进行访问。由于对访问数据进行了字段级的数据保护操作,因此,可以解决相关技术中存在的数据保护粒度较粗,存在安全隐患的问题,达到高效保护数据的效果,提高了数据的安全性。
附图说明
12.图1是本发明实施例的一种数据访问方法的移动终端的硬件结构框图;
13.图2是根据本发明实施例的数据访问方法的流程图;
14.图3是根据本发明具体实施例的数据访问方法流程图;
15.图4是根据本发明具体实施例的管理字段级安全策略的工作流程图;
16.图5是根据本发明具体实施例的字段级安全策略的流程图;
17.图6是根据本发明具体实施例的数据保护装置结构图;
18.图7是根据本发明具体实施例的数据访问方法流程图;
19.图8是根据本发明具体实施例的数据访问方法实行场景示意图;
20.图9是根据本发明实施例的数据访问装置的结构框图。
具体实施方式
21.下文中将参考附图并结合实施例来详细说明本发明的实施例。
22.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
23.本技术实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种数据访问方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
24.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的数据访问方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括
高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
25.传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
26.在本实施例中提供了一种数据访问方法,图2是根据本发明实施例的数据访问方法的流程图,如图2所示,该流程包括如下步骤:
27.步骤s202,接收用于请求对数据库中的数据进行访问的第一访问请求;
28.步骤s204,对所述第一访问请求进行解析,获取与所述第一访问请求所对应的以下数据:第一访问参数、第一请求类型以及第一受控字段列表;
29.步骤s206,基于所述第一访问参数以及所述第一请求类型对所述第一受控字段列表执行第一数据保护操作,得到目标结果;
30.步骤s208,基于所述目标结果合成第二访问请求,并基于所述第二访问请求对所述数据库中的数据进行访问,以得到访问结果。
31.在上述实施例中,第一访问请求可以是sql(structured query language,结构化查询语言)。在接收客户端的sql后,可以对sql进行解析,获取客户端的访问参数、请求类型及受控字段列表。然后可以对受控字段列表中的每一个字段逐个执行数据保护操作,即,执行第一数据保护操作,当所有受控字段处理完毕后,重新合成第一sql语句,得到第二访问请求,数据库引擎执行第一sql语句,将反馈结果反馈至所述客户端。其中,客户端可以是访问数据库的各种应用、程序、命令或者脚本等。
32.在上述实施例中,访问参数包括但不限于:原始请求,如请求sql等;用户身份,如用户名、用户组、角色等;用户访问级别;访问时间;网络参数,如ip地址、主机名等。
33.通过本发明,解析用于请求对数据库中的数据进行访问的第一访问请求,以得到与第一访问请求所对应的第一访问参数、第一请求类型以及第一受控字段列表,根据第一访问参数以及第一请求类型对第一受控字段列表执行第一数据保护操作,得到目标结果,再根据目标结果合成第二访问请求,并利用第二访问请求对数据库中的数据进行访问。由于对访问数据进行了字段级的数据保护操作,因此,可以解决相关技术中存在的数据保护粒度较粗,存在安全隐患的问题,达到高效保护数据的效果,提高了数据的安全性。
34.在一个示例性实施例中,对所述访问请求进行解析,获取与所述第一访问请求所对应的第一受控字段列表包括:在所述第一访问请求为数据查询语言dql类请求的情况下,将所述dql类请求的顶层输出字段列表确定为所述第一受控字段列表;在所述第一访问请求为除所述dql类请求之外的其他请求的情况下,确定所述其他请求所操作的目标字段列表,将所述目标字段确定为所述第一受控字段列表。在本实施例中,对dql(select查询)类请求可以首先获取其顶层输出字段列表,然后将顶层输出字段列表作为受控字段列表;对其他类型请求可以先解析出sql语句所操作的字段,并将操作字段加入到受控字段列表。
35.比如,对于下述的dql类请求:
36.select ename,deptno,sal
37.from emp
38.where deptno=
39.(select deptno from dept where loc='new york');
40.获取的受控字段列表为:
41.emp.ename、dept.deptno、emp.sal;
42.再比如,对于下述的dml类update类请求:
43.update customers set contactname='alfred schmidt',
44.city='frankfurt'
45.where customerid=1;
46.获取的受控字段列表为:
47.customers.contactname、customers.city。
48.在一个示例性实施例中,基于所述第一访问参数以及所述第一请求类型对所述第一受控字段列表执行第一数据保护操作,得到目标结果包括:从所述第一受控字段列表中按预设顺序选取一个受控字段作为第一受控字段;确定与所述第一受控字段对应的第一字段保护规则、数据安全分类、数据安全级别,其中,不同的字段保护规则对应不同的可信条件、请求类型及处理动作的组合,所述可信条件中包括第一访问参数对应的允许访问条件;基于所述第一字段保护规则中对应的第一处理动作对所述第一受控字段列表执行所述第一数据保护操作,得到所述目标结果。在本实施例中,可以从受控字段列表中按预设顺序选取第一受控字段,并获取第一受控字段对应的字段保护规则,其中,字段保护规则可以包括数据安全分类和数据安全级别等。确定字段保护规则可以确定受控字段对应数据安全级别,数据安全级别本身可以作为一组可信条件中包含的一个可信条件,即,可以判断用户的安全级别是否大于等于数据安全级别。在本实施例中,对第一受控字段进行分类保护,同一类字段可设置相同的保护规则及数据安全级别。当获取第一受控字段的数据安全级别为空时,可以获取第一受控字段数据安全分类的数据安全级别作为所述第一受控字段的数据级别;或者,当获取第一受控字段的数据安全级别为空时,还可以获取第一受控字段数据分类的字段保护规则作为第一受控字段的保护规则。
49.在一个示例性实施例中,基于所述第一字段保护规则中对应的第一处理动作对所述第一受控字段执行所述第一数据保护操作,得到所述目标结果包括:基于所获取的第一访问参数执行所述第一字段保护规则对应的一组可信条件;其中,所述第一访问参数至少包括以下之一:原始请求语句、用户身份、用户访问级别、访问时间、网络参数;根据一组可信条件执行结果确定所述第一处理动作所包括的第一动作类型和第一动作因子,其中,所述第一动作类型用于指示具体保护操作,所述第一动作因子用于指示所述具体保护动作算子名及待处理的实际参数;基于所述第一动作因子对所述第一受控字段进行保护处理,以得到所述目标结果。在本实施例中,根据获取的第一访问参数执行第一受控字段的字段保护规则对应的一组可信条件,根据可信条件计算结果,选择对应动作类型,执行具体保护动作因子。其中,上述第一处理动作表示对敏感数据执行的保护方法,包括动作类型、动作因子。其中,动作类型可以包括:拒绝访问、允许访问、显示原始数据、脱敏、加密、解密、匿名
化、审计、告警、自定义动作等;动作因子可以代表执行的具体保护动作算子名及实际参数,其中,实际参数主要包括第一受控字段中待被处理的内容。需要说明的是,动作类型及动作因子可以自定义扩展,应对不同场景下的数据保护。对于拒绝执行动作,可以直接向客户端反馈结果,退出流程。
50.在一个示例性实施例中,基于所述第一动作因子对所述第一受控字段进行保护处理,以得到所述目标结果包括:在所述第一处理动作类型包括脱敏动作、加密处理动作、解密处理动作、匿名化动作以及自定义动作之一的情况下,基于所述第一动作因子将所述第一受控字段合成新的sql语句段,以得到所述目标结果。在本实施例中,对于脱敏动作、加密处理动作、解密处理动作、匿名化动作、自定义动作等,可以根据字段保护规则中的动作因子合成新sql语句段替换其原对应sql语句段。
51.在一个示例性实施例中,所述方法还包括:基于接收到的第一配置指令配置字段保护规则,其中,所述字段保护规则包括请求类型、一组可信条件以及处理动作的组合;其中,所述请求类型包括以下至少之一:数据查询语言dql类、数据操作语言dml类;所述可信条件用于定义可信访问的基本判断单元,至少包括可信访问类型、可信访问参数名、判定操作符及参数值;所述可信访问类型包括以下至少之一:身份可信条件、级别可信条件、网络可信条件、时间可信条件;所述判定操作符包括大于、大于等于、小于等于、小于、等于、不等于;所述处理动作包括动作类型和动作因子,所述动作类型用于指示具体保护操作,所述动作因子用于指示所述具体保护动作算子名及待处理的实际参数;所述动作类型包括以下至少之一:拒绝访问、允许访问、显示原始数据、脱敏处理、加密处理、解密处理、匿名化处理、审计处理、告警处理。在本实施例中,可以根据第一配置指令配置记录字段保护规则,其中,字段保护规则包括请求类型、可信条件以及处理动作的组合,其中,处理动作可以包括动作类型和动作因子。字段保护规则可以针对不同的命令类型(即请求类型)不同的字段保护方法,由命令类型及一组可信条件的逻辑操作表达式组合而成,根据一组可信条件执行结果执行对应的动作。其中,命令类型至少包括dql类(数据查询语言)、dml类(数据操纵语言)等;逻辑操作可以包括与、或、非等操作。
52.在一个示例性实施例中,在所述第一访问参数中包括所述用户访问级别的情况下,所述可信条件中包括与所述用户访问级别对应的所述级别可信条件,其中,所述级别可信条件用于在确定所述用户访问级别大于或等于所述数据安全级别时,确定所述用户访问级别满足所述级别可信条件。在本实施例中,可信条件可以定义可信访问的基本判断单元。其中,基本判断单元可以至少包括以下之一:
53.身份可信条件,用于限制用户身份,包括不限于用户名、用户组、角色等;
54.级别可信条件,根据用户访问级别、数据安全级别、数据安全分类限制用户获取敏感数据;
55.网络可信条件,用于限制访问网络,包括不限于ip地址、主机名等;
56.时间可信条件,用于限制访问时间,包括不限于访问时间等。
57.其中,用户访问级别可以用于描述用户身份级别,包括用户访问级别名及用户访问级别值。需要说明的是,用户访问级别与数据安全级别的数据类型为同一类型,且需要保持同序。可信条件可以包括可信访问类型、可信访问参数名、判定操作符及参数值。其中,判定操作符可以包括大于、大于等于、小于等于、小于、等于、不等于等。
58.在一个示例性实施例中,所述方法还包括:基于接收到的第二配置指令配置与各受控字段对应的数据安全分类以及数据安全级别,其中,处于同一数据安全分类下的多个受控字段所对应的数据安全级别相同。在本实施例中,数据安全分类可以根据敏感数据的业务类型进行分类,可以包括分类名、默认数据安全级别、默认字段保护规则。数据安全级别可以包括数据安全级别名及数据安全级别值等。
59.在上述实施例中,具体可以通过如下步骤设置字段保护规则:
60.步骤1:定义分类分级等级(包括用户访问级别、数据安全级别、数据安全分类);
61.步骤2:设置用户访问级别;
62.步骤3:为敏感字段分配数据保护分类类别及数据安全级别;
63.步骤4:设置可信条件;
64.步骤5:设置字段保护规则。
65.在一个可选的实施例中,上述方法可以运行在数据访问装置中。其中,该装置包括数据保护模块、策略模块,用以实现数据库引擎的敏感数据保护功能。该装置可以内置在数据库引擎中。数据保护模块可以从策略模块中获取敏感数据保护策略,执行对应的数据保护动作,例如,拒绝访问、全脱敏处理、部分脱敏处理、加密处理、匿名化处理、审计、告警等。策略模块包括分类级别单元、策略管理单元、策略存储单元,为数据保护模块提供策略支撑。其中,分类分级单元用于对用户及数据进行分类分级管理,包括用户访问级别、数据安全级别、数据安全类别等。策略管理单元,负责对数据保护策略进行管理并提供策略访问接口。策略存储单元,负责存储数据保护策略。
66.下面结合具体实施方式对访问数据进行说明:
67.图3是根据本发明具体实施例的数据访问方法流程图,如图3所示,该流程包括:
68.步骤s302,接收客户端访问请求;
69.步骤s304,获取客户端访问参数;
70.步骤s306,解析访问请求sql并获取请求类型及受控字段列表;
71.步骤s308,对所述受控字段列表中的每一个字段逐个执行数据保护操作;
72.步骤s310,所有受控字段处理完毕后,重新合成第一sql语句;
73.步骤s312,数据库引擎执行所述第一sql语句,将结果反馈至所述客户端。
74.其中,客户端可以是访问数据库的各种应用、程序、命令或者脚本等;其访问参数可以包括:
75.①
原始请求,包括不限于请求sql;
76.②
用户身份,包括不限于用户名、用户组、角色等;
77.③
用户访问级别;
78.④
访问时间;
79.⑤
网络参数,包括不限于ip地址、主机名等。
80.其中,步骤s306中获取受控字段列表操作可以包括:
81.对dql(select查询)类请求首先获取其顶层输出字段列表,然后将顶层输出字段列表作为受控字段列表;对其他类型请求先解析出sql语句所操作的字段,并将操作字段加入到受控字段列表。
82.其中,步骤s308中,数据保护操作包括:
83.步骤1、从所述受控字段列表中按预设顺序选取第一受控字段;
84.步骤2、获取所述第一受控字段对应的数据安全分类、数据安全级别及字段保护规则;
85.需要说明的是,对敏感字段进行分类保护,同一类敏感字段可设置相同的字段保护规则及数据安全级别;若获取所述第一受控字段的数据安全级别为空,则获取所述第一受控字段数据安全分类的数据安全级别作为所述第一受控字段的数据级别;若获取所述第一受控字段的字段保护规则为空,则获取所述第一受控字段数据分类的字段保护规则作为所述第一受控字段的字段保护规则。
86.步骤3、执行所述第一受控字段的字段保护规则对应的一组可信条件,根据可信条件计算结果,选择对应动作类型,执行具体保护动作因子。例如,对于拒绝执行动作,直接向客户端反馈结果,退出流程。对于脱敏动作、加密处理动作、解密处理动作、匿名化动作等,根据字段保护规则中的动作因子合成新sql语句段替换其原对应sql语句段。
87.图4是根据本发明具体实施例的管理字段级安全策略的工作流程图,如图4所示,该流程包括:字段保护规则、数据安全分类、数据安全级别、客户端访问参数等。
88.其中,字段保护规则用于针对不同的命令类型定义不同的字段保护方法,可以包括命令类型及一组可信条件的逻辑操作表达式,根据一组可信条件执行结果执行对应的处理动作。命令类型至少包括dql类(数据查询语言)、dml类(数据操纵语言)等。逻辑操作包括不限与、或、非操作。
89.其中,可信条件可以定义可信访问的基本判断单元,至少包括其中之一:
90.身份可信条件,用于限制用户身份,包括不限于用户名、用户组、角色等;
91.级别可信条件,根据用户访问级别、数据安全级别、数据安全分类限制用户获取敏感数据;
92.网络可信条件,用于限制访问网络,包括不限于ip地址、主机名等;
93.时间可信条件,用于限制访问时间,包括不限于访问时间等。
94.可信条件至少包括可信访问类型、可信访问参数名、判定操作符及参数值。其中,判定操作符包括大于、大于等于、小于等于、小于、等于、不等于等。
95.其中,处理动作表示对敏感数据执行的保护方法,包括动作类型、动作因子。动作类型至少包括其中之一:拒绝访问、允许访问、显示原始数据、脱敏、加密、解密、匿名化、审计、告警、自定义动作等。动作因子代表了执行的具体保护动作算子名及实际参数。需要说明的是,动态类型及动作因子可以自定义扩展,应对不同场景下的数据保护。
96.数据安全分类可以根据敏感数据的业务类型进行分类,至少包括分类名、默认数据安全级别、默认字段保护规则。
97.数据安全级别,至少包括数据安全级别名及数据安全级别值。
98.客户端访问参数可以包括的参数与上述客户端访问参数基本相似,在此不在赘述。其中,用户访问级别用于描述用户身份级别,至少包括用户访问级别名及用户访问级别值,需要说明的是,用户访问级别与数据安全级别的数据类型为同一类型,且需要保持同序。
99.采用上述步骤,可以根据策略灵活有效提供字段级访问控制和攻击防御功能,支持多种命令类型,支持基于多种可信因素组合授权访问获取敏感数据,实现基于用户名、ip
地址、访问时间等要素的敏感数据访问授权或者数据动态获取,可依据数据机密性级别及用户身份级别限制用户只能获取到其所允许访问的有可能是完全解密的原始数据、部分脱敏后的数据、标签数据、匿名化数据等,实现不同用户对同一敏感数据访问时进行不同的展示,从而有效阻断非法访问。
100.同时,直接利用数据库引擎自身的处理能力,可以高效、实时、透地保护隐私数据,用户可以完全不感知数据保护过程。
101.图5是根据本发明具体实施例的字段级安全策略的流程图,如图5所示,该流程包括:
102.步骤s502,定义分类分级等级。
103.步骤s502-1,定义用户访问级别。
104.可以按照用户的权限级别对用户进行分级,或者可以按照用户组类型进行分级(如低权用户组、部分授权用户组或高权用户组),还可以按照用户所在的地理位置进行分级(如中国、欧洲或北美地区)等。如表1所示,表1为用户分类访问级别的示意表格。
105.表1
106.用户访问级别值备注lowlevel0低权用户middlevel5部分授权用户highlevel10高权用户
107.步骤s502-2,定义数据安全级别。
108.可以按照数据机密性进行对敏感字段划分级别(如公开、秘密、机密或绝密),或者按照数据归属部门进行级别(核心部门数据、非核心部门数据)等。如表2所示的,表2为数据安全级别的示意表格。
109.表2
110.数据安全级别值备注public0内部公开secret2秘密confidential5机密topsecret10绝密
111.步骤s502-3,定义数据安全分类。
112.数据保护分类用于对敏感数据进行分类,将同一类功能含义类似的数据进行分类标识。例如“身份证号”作为一类敏感数据,在该类管理所有数据库中的身份证号数据字段,并可实施统一的默认数据级别及默认的字段保护规则。如表3所示的,表3为数据安全级别的示意表格。
113.表3
114.数据安全分类默认数据保护级别默认字段保护规则备注idsecretrule1身份证号码类namesecretrule2姓名类addresssecretrule3地址类
action2脱敏partialmask(xxx,1,’*’,100)action3匿名化处理k-anonymity(f,3)
135.通过上述方法可以灵活有效提供保护策略,在数据库中灵活根据策略控制数据库的访问方式和访问内容,有效阻断非法访问。
136.图6是根据本发明具体实施例的数据保护装置结构图,前述方法均可运行于图6所示的网络架构上,如图6所示,该装置包括:
137.数据库客户端62,可以是访问数据库服务的应用、程序、命令或者脚本等,通过网络向数据库引擎发起访问请求并接收处理结果,客户端采用已有技术,不需要做任何改变。
138.数据库引擎64,负责完成对客户端请求的业务逻辑处理。可以在数据库引擎中增加数据保护装置,该装置包括数据保护模块、策略模块,用以实现数据库引擎的敏感数据保护功能,数据保护装置内置在数据库引擎中。其中,数据保护模块可以从策略模块中获取敏感数据保护策略,执行对应的数据保护动作,例如,拒绝访问、脱敏处理、加密处理、解密处理、匿名化处理、审计、告警等。策略模块包括分类级别单元、策略管理单元、策略存储单元,为数据保护模块提供策略支撑。其中,分类分级单元用于对用户及数据进行分类分级管理,包括用户访问级别、数据安全级别、数据安全类别等。策略管理单元,负责对数据保护策略进行管理并提供策略访问接口。策略存储单元,负责存储数据保护策略。
139.数据库66,可以是数据实际存储的地方,一个数据库引擎可以支持多个数据库实例。当数据库引擎收到客户端的访问请求后,由接收模块对访问请求进行解析,获得的客户端访问参数,数据保护模块解析访问请求sql并获取请求类型及受控字段列表,对受控字段列表中的每一个字段逐个执行数据保护操作;所有受控字段处理完毕后,重新合成第一sql语句,数据库引擎执行所述第一sql语句,将结果反馈至所述客户端。
140.针对sql类数据库引擎(包括不限于hive、sparksql等),以hive数据库例为,图7是根据本发明具体实施例的数据访问方法流程图,如图7所示,该流程包括:
141.步骤s702,hive(hive是基于hadoop的一个数据仓库工具,可以将结构化数据文件映射为一张数据库表,并提供类sql查询功能)客户端通过网络直接向hive数据库引擎发起sql访问请求。
142.步骤s704,hive数据库引擎获取客户端访问参数。其中,访问参数至少包括其中之一:
143.①
原始请求,包括不限于请求sql;
144.②
用户身份,包括不限于用户名、用户组、角色等;
145.③
用户访问级别;
146.④
访问时间;
147.⑤
网络参数,包括不限于ip地址、主机名等。
148.步骤s706,hive数据库引擎的sql解析器对原始请求中的sql语句进行解析,构造出语法树,将sql进一部抽象和结构化,生成重构后的抽象语法树。
149.步骤s708,解析抽象语法树,解析请求sql语句,获取sql语句请求类型,对dql类请求获取其顶层输出字段列表作为受控字段列表,对其他类型请求先解析出sql语句所操作的字段,并将操作字段加入到受控字段列表。
150.步骤s710,判断命令类型,当命令类型为dql类时,执行步骤s712,当命令类型为非
dql类型,执行步骤s714。
151.步骤s712,生成顶层输出字段列表作为受控字段列表。
152.以dql类查询语句为例:
153.select ename,deptno,sal
154.from emp
155.where deptno=
156.(select deptno from dept where loc='new york');
157.本步骤中,获取的受控字段列表为:
158.emp.ename、dept.deptno、emp.sal
159.其中,emp,dept为数据库表名,其他为字段名;
160.步骤s714,获取字段名加入受控字段列表。
161.以dml类update语句为例:
162.update customers set contactname='alfred schmidt',city='frankfurt'
163.where customerid=1;
164.本步骤中,获取的受控字段列表为:
165.customers.contactname、customers.city
166.其中,customers为数据库表名,其他为字段名;
167.步骤s716,从受控字段列表中按预设顺序选取第一受控字段,获取所述第一受控字段对应的数据保护分类、数据安全级别及字段保护规则。
168.如表9所示,表9为获取到的字段保护规则的示意表格。
169.表9
[0170][0171]
特别地,若获取所述第一受控字段的数据安全级别为空,则获取所述第一受控字段数据分类的数据安全级别作为所述第一受控字段的数据安全级别;
[0172]
特别地,若获取所述第一受控字段的字段保护规则为空,则获取所述第一受控字段数据分类的字段保护规则作为所述第一受控字段的保护规则;
[0173]
步骤s718,执行所述第一受控字段的字段保护规则对应的一组可信条件,根据可信条件计算结果,选择对应动作类型,执行具体保护动作因子。
[0174]
步骤s720,判断动作类型,如果动作类型为拒绝执行,则执行步骤s722,如果动作类型为脱敏处理、加密处理、解密处理、匿名化处理等,则执行步骤s724,如果动作类型为审计,则执行步骤s726。
[0175]
步骤s722,直接向客户端反馈结果,退出流程。
[0176]
步骤s724,根据字段保护规则中的动作因子合成新sql语句段替换其原对应sql语句段。
[0177]
例如,对ename字段,其select语句类型的保护规则为:selector2-》action1;执行selector2判断,也就是判断用户访问级别值是否《数据保护级别值,如果是则执行action1动作,即拒绝执行,否则继续执行。对sal字段,其select语句类型的保护规则为:selector1-》action2;执行selector1判断,也就是判断用户是否张三,如果是则执行action2动作,即使用partialmask(sal,1,’*’,100)作为部分脱敏算法执行,这一步,将partialmask(sal,1,’*’,100)这一段sql语句替换受控字段sal对应的抽象语法树节点原有值sal。
[0178]
步骤s726,审计。
[0179]
步骤s728,判断所有字段是否处理完毕,如果判断结果为是,则执行步骤s730,如果判断结果为否,则执行步骤s716。
[0180]
步骤s730,遍历抽象语法树,重新合成第一sql语句,确定所述第一sql语句为最终执行的sql语句。
[0181]
select ename,deptno,partialmask(sal,1,’*’,100)
[0182]
from emp
[0183]
where deptno=
[0184]
(select deptno from dept where loc='new york');
[0185]
改写后的sql语句对敏感字段sal自动进行了部分脱敏处理。
[0186]
同样地,对下列sql语句
[0187]
update customers set contactname='alfred schmidt',city='frankfurt'
[0188]
where customerid=1;
[0189]
可以根据保护规则改写为:
[0190]
update customers set contactname=mask('alfred schmidt',’*’),city='frankfurt'
[0191]
where customerid=1;
[0192]
其中,mask为保护算因子,将字符串置为*。
[0193]
步骤s732,数据库执行改写后的sql语句。
[0194]
步骤s734,数据库依据最终执行的sql语句,并将处理结果反馈至所述客户端。
[0195]
采用上述步骤,可以根据策略灵活有效提供字段级访问控制和攻击防御功能,支持多种命令类型,支持基于多种可信因素组合授权访问获取敏感数据,实现基于用户名、ip地址、访问时间等要素的敏感数据访问授权或者数据动态获取,可依据数据机密性级别及用户身份级别限制用户只能获取到其所允许访问的有可能是完全解密的原始数据、部分脱敏后的数据、标签数据、匿名化数据等,实现不同用户对同一敏感数据访问时进行不同的展示,从而有效阻断非法访问。同时,直接利用数据库引擎自身的处理能力,可以高效、实时、透明地保护隐私数据,用户可以完全不感知数据保护过程。
[0196]
hive数据库保存了大量敏感数据,通过设置灵活的数据保护策略,可以在客户端访问过程中透明地对hive数据库中敏感数据进行实时保护。图8是根据本发明具体实施例的数据访问方法实行场景示意图,用于执行如下步骤:
[0197]
步骤1,登录,具体地,合规管理员使用自己的账户和密码登录数据库系统;
[0198]
步骤2,设置保护策略,合规管理员通过命令方式或者界面配置方式设置字段保护
策略;
[0199]
步骤3,用户通过客户端发起访问请求,具体地,直接向数据库引擎发起查询请求;
[0200]
步骤4,执行数据保护,具体地,当数据库引擎收到客户端的访问请求后,由接收模块对访问请求进行解析,获得的客户端访问参数,数据保护模块解析访问请求sql并获取请求类型及受控字段列表,对受控字段列表中的每一个字段逐个执行数据保护操作;所有受控字段处理完毕后,重新合成第一sql语句,数据库引擎执行所述第一sql语句,将结果反馈至所述客户端。
[0201]
其中,步骤1-2为合规管理员所执行的,步骤3为用户执行的,步骤4为数据保护装置执行的。
[0202]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0203]
在本实施例中还提供了一种数据访问装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0204]
图9是根据本发明实施例的数据访问装置的结构框图,如图9所示,该装置包括:
[0205]
接收模块92,用于接收用于请求对数据库中的数据进行访问的第一访问请求;
[0206]
获取模块94,用于对所述访问请求进行解析,获取与所述第一访问请求所对应的以下数据:第一访问参数、第一请求类型以及第一受控字段列表;
[0207]
执行模块96,用于基于所述第一访问参数以及所述第一请求类型对所述第一受控字段列表执行第一数据保护操作,得到目标结果;
[0208]
访问模块98,用于基于所述目标结果合成第二访问请求,并基于所述第二访问请求对所述数据库中的数据进行访问,以得到访问结果。
[0209]
其中,该数据访问装置对应于图6所示的数据库引擎,所述接收模块92对应于图6所示的接收模块、所述执行模块96对应于图6中所示的数据保护模块,所述访问模块98对应于上述执行引擎。具体地,所述获取模块94对应于上述策略模块中的分类分级单元,所述访问模块98对应于上述策略模块中的策略存储单元和策略管理单元。
[0210]
在一个示例性实施例中,所述获取模块94可以通过如下方式实现对所述访问请求进行解析,获取与所述第一访问请求所对应的第一受控字段列表:在所述第一访问请求为数据查询语言dql类请求的情况下,将所述dql类请求的顶层输出字段列表确定为所述第一受控字段列表;在所述第一访问请求为除所述dql类请求之外的其他请求的情况下,确定所述其他请求所操作的目标字段列表,将所述目标字段列表确定为所述第一受控字段列表。
[0211]
在一个示例性实施例中,所述执行模块96可以通过如下方式实现基于所述第一访问参数以及所述第一请求类型对所述第一受控字段列表执行第一数据保护操作,得到目标结果:从所述第一受控字段列表中按预设顺序选取一个受控字段作为第一受控字段;确定
与所述第一受控字段对应的第一字段保护规则、数据安全分类、数据安全级别,其中,不同的字段保护规则对应不同的可信条件、请求类型及处理动作的组合,所述可信条件中包括第一访问参数对应的允许访问条件;基于所述第一字段保护规则中对应的第一处理动作对所述第一受控字段执行所述第一数据保护操作,得到所述目标结果。
[0212]
在一个示例性实施例中,所述执行模块96可以通过如下方式实现基于所述第一字段保护规则中对应的第一处理动作对所述第一受控字段执行所述第一数据保护操作,得到所述目标结果:基于所获取的第一访问参数执行所述第一字段保护规则对应的一组可信条件;其中,所述第一访问参数至少包括以下之一:原始请求语句、用户身份、用户访问级别、访问时间、网络参数;根据一组可信条件执行结果确定所述第一处理动作所包括的第一动作类型和第一动作因子,其中,所述第一动作类型用于指示具体保护操作,所述第一动作因子用于指示所述具体保护动作算子名及待处理的实际参数;基于所述第一动作因子对所述第一受控字段进行保护处理,以得到所述目标结果。
[0213]
在一个示例性实施例中,所述执行模块96可以通过如下方式实现基于所述第一动作因子对所述第一受控字段进行保护处理,以得到所述目标结果:在所述第一处理动作类型包括脱敏动作、加密处理动作、解密处理动作、匿名化动作以及自定义动作之一的情况下,基于所述第一动作因子将所述第一受控字段合成新的sql语句段,以得到所述目标结果。
[0214]
在一个示例性实施例中,所述装置可以用于基于接收到的第一配置指令配置字段保护规则,其中,所述字段保护规则包括请求类型、一组可信条件以及处理动作的组合;其中,所述请求类型包括以下至少之一:数据查询语言dql类、数据操作语言dml类;所述可信条件用于定义可信访问的基本判断单元,至少包括可信访问类型、可信访问参数名、判定操作符及参数值;所述可信访问类型包括以下至少之一:身份可信条件、级别可信条件、网络可信条件、时间可信条件;所述判定操作符包括大于、大于等于、小于等于、小于、等于、不等于;所述处理动作包括动作类型和动作因子,所述动作类型用于指示具体保护操作,所述动作因子用于指示所述具体保护动作算子名及待处理的实际参数;所述动作类型包括以下至少之一:拒绝访问、允许访问、显示原始数据、脱敏处理、加密处理、解密处理、匿名化处理、审计处理、告警处理。
[0215]
在一个示例性实施例中,在所述第一访问参数中包括所述用户访问级别的情况下,所述可信条件中包括与所述用户访问级别对应的所述级别可信条件,其中,所述级别可信条件用于在确定所述用户访问级别大于或等于所述数据安全级别时,确定所述用户访问级别满足所述级别可信条件。
[0216]
在一个示例性实施例中,所述装置还可以用于基于接收到的第二配置指令配置与各受控字段对应的数据安全分类以及数据安全级别,其中,处于同一数据安全分类下的多个受控字段所对应的数据安全级别相同。
[0217]
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
[0218]
本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步
骤。
[0219]
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:u盘、只读存储器(read-only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
[0220]
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
[0221]
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
[0222]
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
[0223]
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0224]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献