本技术涉及计算机,尤其涉及一种数据访问控制方法、装置、设备及介质。
背景技术:
1、随着科技进步,不断有各种各样的数据产生以及存储。相应的,对数据进行合理使用,也有利于促进生产生活的发展。一般的,可以通过各种主体对数据进行访问,进而利用访问到的数据完成各种操作。
2、然而,如果数据被不合理或不合法地获取,可能造成数据泄露或被不当利用,故对数据的访问并不是毫无限制的。
3、访问控制(access control)就是一种数据访问行为进行限制的方式,并且访问控制具有广泛应用,是几乎所有系统(包括计算机系统和非计算机系统)都需要用到的一种技术。这样一来,如何提高访问控制效果和效率,成为重要课题。
4、另外,目前的主流数据库产品仅支持表级别的访问控制,针对大数据量的不同用户行级访问控制通常是通过分表的方式实现,经常会出现数据冗余的情况。
5、有鉴于此,需要更有效和更高效的数据访问控制方案。
技术实现思路
1、本技术提供一种数据访问控制方法、装置、设备及介质,用以解决如何更有效和更高效地进行数据访问控制的技术问题。
2、为解决上述技术问题,本技术提供如下技术方案:
3、一种数据访问控制方法,所述方法包括:
4、获取用于表征数据访问请求的初始sql语句,对所述初始sql语句进行解析,生成ast语法树;
5、根据所述ast语法树确定所述初始sql语句对应的数据访问请求方的访问规则,生成包含所述访问规则的目标sql语句;
6、执行所述目标sql语句,以控制所述数据访问请求方按照所述访问规则进行数据访问操作;或使数据源执行所述目标sql语句,以控制所述数据访问请求方按照所述访问规则进行数据访问操作。
7、进一步的,其中,根据所述ast语法树确定所述初始sql语句对应的数据访问请求方的访问规则包括:
8、使用深度优先算法遍历所述ast语法树的所有节点,确定所述初始sql语句所请求访问的目标数据,并确定所述目标数据的数据标签信息;其中,所述目标数据的数据标签信息用于表征所述目标数据对应的标签,和/或,所述目标数据的数据标签信息用于表征请求访问的目标数据的范围;
9、获取所述初始sql语句对应的数据访问请求方的主体标签信息;其中,所述数据访问请求方的主体标签信息用于表征所述数据访问请求方对应的标签;
10、确定所述主体标签信息对应的匹配策略,根据所述匹配策略将所述主体标签信息与所述数据标签信息进行匹配,根据匹配结果确定所述数据访问请求方的访问规则。
11、进一步的,其中,所述标签包括:
12、枚举型标签,且各个枚举型标签之间相互独立;
13、和/或,
14、值域型标签,且各个所述值域型标签对应有级别范围或值域;
15、和/或,
16、层级型标签,且各个所述层级型标签对应有层级。
17、进一步的,其中,确定所述主体标签信息对应的匹配策略包括:
18、若所述主体标签信息表征的标签中包括枚举型标签,则所述枚举型标签对应的匹配策略包括,将所述主体标签信息中的枚举型标签与所述数据标签信息中的枚举型标签进行匹配;
19、和/或,
20、若所述主体标签信息表征的标签中包括值域型标签,则所述值域型标签对应的匹配策略包括,将所述主体标签信息中的值域型标签对应的级别范围或值域,与所述数据标签信息中的值域型标签对应的级别范围或值域进行匹配;
21、和/或,
22、若所述主体标签信息表征的标签中包括层级型标签,则所述层级型标签对应的匹配策略包括,将所述主体标签信息中的层级型标签对应的层级,与所述数据标签信息中的层级型标签对应的层级进行匹配。
23、进一步的,其中,根据匹配结果确定所述数据访问请求方的访问规则包括:
24、根据匹配结果确定所述目标数据中,允许所述数据访问请求方访问的数据。
25、进一步的,其中,所述目标数据来自于数据源;
26、获取用于表征数据访问请求的初始sql语句前,所述方法还包括:
27、获取数据源中的各种数据对应的数据标签信息。
28、进一步的,其中,所述访问规则包括允许访问数据,所述允许访问数据为所述目标数据中,允许所述数据访问请求方访问的数据;
29、控制所述数据访问请求方按照所述访问规则进行数据访问操作包括:
30、允许所述数据访问请求方访问所述允许访问数据;
31、或,
32、将所述允许访问数据反馈给所述数据访问请求方。
33、进一步的,其中,所述访问规则包括允许访问数据,所述允许访问数据为所述目标数据中,允许所述数据访问请求方访问的数据;
34、所述目标sql语句中包含所述数据访问请求方的数据访问权限。
35、进一步的,其中,控制所述数据访问请求方按照所述访问规则进行数据访问操作包括:
36、允许所述数据访问请求方按照所述访问权限访问所述允许访问数据;
37、或,
38、将所述允许访问数据反馈给所述数据访问请求方,控制所述数据访问请求方按照所述数据访问权限访问所述允许访问数据。
39、本技术还提供一种数据访问控制装置,所述装置包括:
40、解析模块,用于获取用于表征数据访问请求的初始sql语句,对所述初始sql语句进行解析,生成ast语法树;
41、判断模块,用于根据所述ast语法树确定所述初始sql语句对应的数据访问请求方的访问规则,生成包含所述访问规则的目标sql语句;
42、执行模块,用于执行所述目标sql语句,以控制所述数据访问请求方按照所述访问规则进行数据访问操作;或使数据源执行所述目标sql语句,以控制所述数据访问请求方按照所述访问规则进行数据访问操作。
43、本技术还提供一种数据访问控制设备,包括:
44、至少一个处理器;
45、以及,
46、与所述至少一个处理器通信连接的存储器;
47、其中,
48、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,使所述至少一个处理器能够执行上述的数据访问控制方法。
49、本技术还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现上述的数据访问控制方法。
50、本技术采用的上述至少一个技术方案能够达到以下有益效果:
51、通过用于表征数据访问请求的初始sql语句生成ast语法树,根据ast语法树确定数据访问请求方的访问规则,并将访问规则融入新的目标sql语句,通过执行新的目标sql语句,就可以便捷地控制数据访问请求方按照访问规则进行数据访问操作,提高数据访问控制效果和效率。