CN116662373A - 一种数据访问控制方法、装置、设备及介质 - Google Patents
一种数据访问控制方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116662373A CN116662373A CN202310926727.1A CN202310926727A CN116662373A CN 116662373 A CN116662373 A CN 116662373A CN 202310926727 A CN202310926727 A CN 202310926727A CN 116662373 A CN116662373 A CN 116662373A
- Authority
- CN
- China
- Prior art keywords
- data
- access
- data access
- sql statement
- requester
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000004458 analytical method Methods 0.000 claims description 8
- 239000004973 liquid crystal related substance Substances 0.000 claims description 6
- 238000003860 storage Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 11
- 238000011217 control strategy Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 239000003999 initiator Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 239000003638 chemical reducing agent Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000010419 fine particle Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000011068 loading method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/425—Lexical analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据访问控制方法、装置、设备及介质,数据访问控制方法包括:获取用于表征数据访问请求的初始SQL语句,对所述初始SQL语句进行解析,生成AST语法树;根据所述AST语法树确定所述初始SQL语句对应的数据访问请求方的访问规则,生成包含所述访问规则的目标SQL语句;执行所述目标SQL语句,以控制所述数据访问请求方按照所述访问规则进行数据访问操作;或使数据源执行所述目标SQL语句,以控制所述数据访问请求方按照所述访问规则进行数据访问操作。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据访问控制方法、装置、设备及介质。
背景技术
随着科技进步,不断有各种各样的数据产生以及存储。相应的,对数据进行合理使用,也有利于促进生产生活的发展。一般的,可以通过各种主体对数据进行访问,进而利用访问到的数据完成各种操作。
然而,如果数据被不合理或不合法地获取,可能造成数据泄露或被不当利用,故对数据的访问并不是毫无限制的。
访问控制(Access Control)就是一种数据访问行为进行限制的方式,并且访问控制具有广泛应用,是几乎所有系统(包括计算机系统和非计算机系统)都需要用到的一种技术。这样一来,如何提高访问控制效果和效率,成为重要课题。
另外,目前的主流数据库产品仅支持表级别的访问控制,针对大数据量的不同用户行级访问控制通常是通过分表的方式实现,经常会出现数据冗余的情况。
有鉴于此,需要更有效和更高效的数据访问控制方案。
发明内容
本申请提供一种数据访问控制方法、装置、设备及介质,用以解决如何更有效和更高效地进行数据访问控制的技术问题。
为解决上述技术问题,本申请提供如下技术方案:
一种数据访问控制方法,所述方法包括:
获取用于表征数据访问请求的初始SQL语句,对所述初始SQL语句进行解析,生成AST语法树;
根据所述AST语法树确定所述初始SQL语句对应的数据访问请求方的访问规则,生成包含所述访问规则的目标SQL语句;
执行所述目标SQL语句,以控制所述数据访问请求方按照所述访问规则进行数据访问操作;或使数据源执行所述目标SQL语句,以控制所述数据访问请求方按照所述访问规则进行数据访问操作。
进一步的,其中,根据所述AST语法树确定所述初始SQL语句对应的数据访问请求方的访问规则包括:
使用深度优先算法遍历所述AST语法树的所有节点,确定所述初始SQL语句所请求访问的目标数据,并确定所述目标数据的数据标签信息;其中,所述目标数据的数据标签信息用于表征所述目标数据对应的标签,和/或,所述目标数据的数据标签信息用于表征请求访问的目标数据的范围;
获取所述初始SQL语句对应的数据访问请求方的主体标签信息;其中,所述数据访问请求方的主体标签信息用于表征所述数据访问请求方对应的标签;
确定所述主体标签信息对应的匹配策略,根据所述匹配策略将所述主体标签信息与所述数据标签信息进行匹配,根据匹配结果确定所述数据访问请求方的访问规则。
进一步的,其中,所述标签包括:
枚举型标签,且各个枚举型标签之间相互独立;
和/或,
值域型标签,且各个所述值域型标签对应有级别范围或值域;
和/或,
层级型标签,且各个所述层级型标签对应有层级。
进一步的,其中,确定所述主体标签信息对应的匹配策略包括:
若所述主体标签信息表征的标签中包括枚举型标签,则所述枚举型标签对应的匹配策略包括,将所述主体标签信息中的枚举型标签与所述数据标签信息中的枚举型标签进行匹配;
和/或,
若所述主体标签信息表征的标签中包括值域型标签,则所述值域型标签对应的匹配策略包括,将所述主体标签信息中的值域型标签对应的级别范围或值域,与所述数据标签信息中的值域型标签对应的级别范围或值域进行匹配;
和/或,
若所述主体标签信息表征的标签中包括层级型标签,则所述层级型标签对应的匹配策略包括,将所述主体标签信息中的层级型标签对应的层级,与所述数据标签信息中的层级型标签对应的层级进行匹配。
进一步的,其中,根据匹配结果确定所述数据访问请求方的访问规则包括:
根据匹配结果确定所述目标数据中,允许所述数据访问请求方访问的数据。
进一步的,其中,所述目标数据来自于数据源;
获取用于表征数据访问请求的初始SQL语句前,所述方法还包括:
获取数据源中的各种数据对应的数据标签信息。
进一步的,其中,所述访问规则包括允许访问数据,所述允许访问数据为所述目标数据中,允许所述数据访问请求方访问的数据;
控制所述数据访问请求方按照所述访问规则进行数据访问操作包括:
允许所述数据访问请求方访问所述允许访问数据;
或,
将所述允许访问数据反馈给所述数据访问请求方。
进一步的,其中,所述访问规则包括允许访问数据,所述允许访问数据为所述目标数据中,允许所述数据访问请求方访问的数据;
所述目标SQL语句中包含所述数据访问请求方的数据访问权限。
进一步的,其中,控制所述数据访问请求方按照所述访问规则进行数据访问操作包括:
允许所述数据访问请求方按照所述访问权限访问所述允许访问数据;
或,
将所述允许访问数据反馈给所述数据访问请求方,控制所述数据访问请求方按照所述数据访问权限访问所述允许访问数据。
本申请还提供一种数据访问控制装置,所述装置包括:
解析模块,用于获取用于表征数据访问请求的初始SQL语句,对所述初始SQL语句进行解析,生成AST语法树;
判断模块,用于根据所述AST语法树确定所述初始SQL语句对应的数据访问请求方的访问规则,生成包含所述访问规则的目标SQL语句;
执行模块,用于执行所述目标SQL语句,以控制所述数据访问请求方按照所述访问规则进行数据访问操作;或使数据源执行所述目标SQL语句,以控制所述数据访问请求方按照所述访问规则进行数据访问操作。
本申请还提供一种数据访问控制设备,包括:
至少一个处理器;
以及,
与所述至少一个处理器通信连接的存储器;
其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,使所述至少一个处理器能够执行上述的数据访问控制方法。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现上述的数据访问控制方法。
本申请采用的上述至少一个技术方案能够达到以下有益效果:
通过用于表征数据访问请求的初始SQL语句生成AST语法树,根据AST语法树确定数据访问请求方的访问规则,并将访问规则融入新的目标SQL语句,通过执行新的目标SQL语句,就可以便捷地控制数据访问请求方按照访问规则进行数据访问操作,提高数据访问控制效果和效率。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对本说明书实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面介绍的附图仅仅是本说明书中记载的实施例可能涉及的部分附图,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请第一个实施例中的数据访问控制方法的流程示意图。
图2是本申请第一个实施例中的数据访问控制过程示意图。
图3是本申请第二个实施例中的数据访问控制装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例的附图,对本说明书实施例的技术方案清楚、完整地进行描述。显然,本说明书所描述的实施例仅仅是本申请的部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。本说明书实施例中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。
访问控制(Access Control)指系统对用户身份及其所属的预先定义的策略组限制其使用数据资源能力的手段。通常用于系统管理员控制用户对服务器、目录、文件等网络资源的访问。访问控制是系统保密性、完整性、可用性和合法使用性的重要基础,是网络安全防范和资源保护的关键策略之一,也是主体依据某些控制策略或权限对客体本身或其资源进行的不同授权访问。
访问控制的主要目的是限制访问主体对客体的访问,从而保障数据资源在合法范围内得以有效使用和管理。为了达到上述目的,访问控制需要完成两个任务:识别和确认访问系统的用户、决定该用户可以对某一系统资源进行何种类型的访问。
访问控制包括三个要素:主体、客体和控制策略。
(1)主体(Subject):是指提出访问资源具体请求的实体,是某一操作动作的发起者,但不一定是动作的执行者,可能是某一用户,也可以是用户启动的进程、服务和设备等。
(2)客体(Object):是指被请求访问的资源实体或信息资产,例如所有可以被操作的数据、信息、资源、对象都可以是客体。客体可以是数据、信息、文件、记录等集合体,也可以是网络上硬件设施、无线通信中的终端,甚至可以包含另外一个客体。
(3)控制策略(Access Control Policy):是主体对客体的相关访问规则集合,即属性集合。控制策略体现了一种授权行为,也是客体对主体某些操作行为的默认。
访问控制的功能及原理
访问控制的主要功能包括:保证合法用户访问受保护的数据资源,防止非法的主体访问受保护的数据资源,或防止合法用户对受保护的数据资源进行非授权的访问。访问控制首先需要对用户身份的合法性进行验证,同时利用控制策略进行选用和管理工作。当用户身份和访问权限验证之后,还需要对越权操作进行监控。因此,访问控制的内容包括认证、控制策略实现和安全审计。
本说明书第一个实施例(以下简称“实施例一”)提供了一种数据访问控制方法,实施例一的执行主体可以是终端(包括但不限于手机、计算机、pad、电视)或者服务器或者操作系统或者应用程序或者数据访问控制平台或者数据访问控制系统等,即执行主体可以是多种多样的,可以根据需要设置、使用或者变换执行主体。另外,也可以有第三方应用程序协助所述执行主体执行实施例一。例如可以由服务器来执行实施例一中的数据访问控制方法,并且可以在(用户所持有的)终端上安装(与所述服务器)相对应的应用程序,终端或应用程序与服务器之间可以进行数据传输,通过终端或应用程序来进行数据的采集或输入或输出或(向用户)进行页面或信息处理,从而辅助服务器执行实施例一中的数据访问控制方法。
如图1和图2所示,实施例一提供的数据访问控制方法包括:
S101:(执行主体)获取用于表征数据访问请求的初始SQL语句,对所述初始SQL语句进行解析,生成AST语法树;
实施例一中,可以将上述客体统称为数据。一般的,所述数据可以存储在数据库中,并由实施例一的执行主体对所述数据或数据库进行数据访问控制。
当有主体(以下称为“数据访问请求方”)想要访问数据时,实施例一的执行主体可以获取数据访问请求(即将数据访问请求输入实施例一的执行主体)。其中,所述数据访问请求可以是数据访问请求方产生并发送给实施例一的执行主体的,或者可以是数据访问请求方产生并通过“数据访问请求方以外的其他主体”发送给实施例一的执行主体的,或者可以是数据访问请求方以外的其他主体产生并发送给实施例一的执行主体的(例如所述其他主体可以根据数据访问请求方的指令产生并发送数据访问请求)。对于数据访问请求的产生或发送方式,实施例一不进行具体限定。
实施例一中,数据访问请求中可以包含数据访问请求方的标识信息,所述标识信息可以用于识别或确认数据访问请求方的身份。这种情况下,数据访问请求与其包含的标识信息相对应,标识信息又可以用于识别或确认数据访问请求方的身份,故数据访问请求与数据访问请求方可以具有对应关系。
或者,数据访问请求中可以不包含数据访问请求方的标识信息,数据访问请求方或“数据访问请求方以外的其他主体”除向实施例一的执行主体发送数据访问请求外,还可以将数据访问请求方的标识信息发送给实施例一的执行主体。一般的,数据访问请求方或“数据访问请求方以外的其他主体”可以将数据访问请求和标识信息同时发送给实施例一的执行主体。若数据访问请求和标识信息不是同时发送给实施例一的执行主体的,则数据访问请求和标识信息之间可以具有用于将两者对应起来的信息,以便实施例一的执行主体判断数据访问请求与标识信息的对应关系,即判断初始SQL语句与数据访问请求方的对应关系。
实施例一中,所述将数据访问请求和标识信息对应起来的信息包括但不限于时间信息。其中,实施例一的执行主体获取到某数据访问请求后,可以将该数据访问请求之前最新获取的标识信息,作为该数据访问请求对应的标识信息;或者将该数据访问请求之后最新获取的标识信息,作为该数据访问请求对应的标识信息。相应的,实施例一的执行主体获取到某标识信息后,可以将该标识信息之前最新获取的数据访问请求,作为该标识信息对应的数据访问请求;或者将该标识信息之后最新获取的数据访问请求,作为该标识信息对应的数据访问请求。
通过数据访问请求与标识信息的对应关系,实施例一的执行主体可以判断数据访问请求对应的数据访问请求方。
如上所述,数据可以存储在数据库中,故数据访问请求可以是SQL语句的形式,即通过SQL语句来表征数据访问请求,以便实施例一的执行主体或者数据库读取或处理数据访问请求。相应的,实施例一的执行主体可以是SQL网关。
实施例一的执行主体所获取的,用于表征数据访问请求的SQL语句可以称为初始SQL语句。
实施例一的执行主体获取初始SQL语句后,可以对初始SQL语句进行解析,生成AST(abstract syntax tree)语法树。其中,实施例一的执行主体可以使用SQL Parser对初始SQL语句进行解析(包括词法和/或语法解析)和转换,如果符合规则,则生成AST语法树。具体的,实施例一的执行主体可以支持自定义词法和语法解析规则(即token和语法规则),并确认初始SQL语法的合规性。
实施例一中,对初始SQL语句进行解析,可以解析出每一个单词,并记录单词的位置。下面通过示例说明对初始SQL语句进行解析和生成AST语法树的过程:
例如,初始SQL语句是SELECT A.ID,B.ID FROM A LEFT JOIN B ON A.ID=B.ID
LEFT JOIN C ON B.ID=C.ID,对初始SQL语句进行词法解析后,能够得到字面值,类型以及
位置信息,具体解析结果如表1所示。
literals | TokenType类型 | TokenType值 | endPosition |
SELECT | DefaultKeyword | SELECT | 6 |
A | Literals | IDENTIFIER | 8 |
. | Sysmbol | DOT | 9 |
ID | Symbol | IDENTIFIER | 11 |
, | Sysmbol | COMMA | 12 |
B | Literals | IDENTIFIER | 13 |
. | Sysmbol | DOT | 14 |
ID | Symbol | IDENTIFIER | 16 |
FROM | DefaultKeyword | FROM | 21 |
A | Literals | IDENTIFIER | 23 |
left | DefaultKeyword | left | 28 |
JOIN | DefaultKeyword | JOIN | 33 |
B | Literals | IDENTIFIER | 35 |
ON | DefaultKeyword | ON | 38 |
A | Literals | IDENTIFIER | 40 |
. | Sysmbol | DOT | 41 |
ID | Literals | IDENTIFIER | 43 |
= | Sysmbol | EQ | 44 |
B | Literals | IDENTIFIER | 45 |
. | Sysmbol | DOT | 46 |
ID | Literals | IDENTIFIER | 48 |
left | DefaultKeyword | left | 53 |
JOIN | DefaultKeyword | JOIN | 58 |
C | Literals | IDENTIFIER | 60 |
ON | DefaultKeyword | ON | 63 |
B | Literals | IDENTIFIER | 65 |
. | Sysmbol | DOT | 66 |
ID | Literals | IDENTIFIER | 68 |
= | Sysmbol | EQ | 69 |
C | Literals | IDENTIFIER | 70 |
. | Sysmbol | DOT | 71 |
ID | Literals | IDENTIFIER | 73 |
表1
词法解析完成,按字面词的顺序进行语法解析,判断是否符合语法规则,明确初始SQL语句的含义,同时生成AST语法树,从而将初始SQL语句转换成AST语法树。
S103:(执行主体)根据所述AST语法树确定所述初始SQL语句对应的数据访问请求方的访问规则,生成包含所述访问规则的目标SQL语句;
生成AST语法树后,实施例一的执行主体可以根据AST语法树确定初始SQL语句对应的数据访问请求方的访问规则。
其中,根据AST语法树确定初始SQL语句对应的数据访问请求方的访问规则可以包括:
S1031:使用深度优先算法遍历所述AST语法树的所有节点,确定所述初始SQL语句所请求访问的目标数据,并确定所述目标数据的数据标签信息;
实施例一中,生成的AST语法树中,所有的AST节点都支持使用Visitor进行遍历(实施例一的执行主体可以使用相应的VISITOR对AST语法树进行遍历),可以实现相应的ASTVisitorAdapter派生类。实施例一的执行主体可以使用深度优先算法深度遍历AST语法树的所有节点,获取FROM relation的所有节点作为客体,所述客体即为初始SQL语句表征的数据访问请求所请求访问的目标数据。实施例一中,所述目标数据可以具体到行级。
实施例一中,数据访问请求方所请求访问的目标数据是来自于数据源或存储在数据源,所述数据源可以是数据库。可以将数据源的各个或各种数据称为候选数据,各个或各种候选数据都可能成为某数据访问请求所请求访问的目标数据。
各个或各种候选数据可以具有对应的标签,候选数据对应的标签可以是实施例一的执行主体设置的,也可以是实施例一的执行主体以外的其他主体(所述其他主体包括但不限于信息资产管理系统或其他第三方应用)设置的。
候选数据对应的标签可以有一种或多种标签类型,每个或每种候选数据可以对应一种或多种类型的标签。其中,标签类型包括但不限于枚举型和/或值域型和/或层级型,即标签可以包括枚举型标签(即类型为枚举型的标签)和/或值域型标签(即类型为值域型的标签)和/或层级型标签(即类型为层级型的标签)。具体的,多个枚举型标签可以同属一个标签集合,单个标签集合中的标签可以属于同一个业务集,同一标签集合中的各个枚举型标签之间相互独立或互不关联;各个值域型标签都对应有(一定的)级别范围或值域,各个值域型标签对应的级别范围或值域可以不同;各个层级型标签都对应有(一定的)层级,各个层级型标签对应的层级可以不同,即层级型标签为按照层级(或级别)分类的标签。
实施例一中,获取用于表征数据访问请求的初始SQL语句前,实施例一的执行主体可以获取数据源中的各个或各种数据(即候选数据)对应的数据标签信息。其中,候选数据的数据标签信息用于表征候选数据对应的标签。
如上所述,候选数据对应的标签可以是实施例一的执行主体设置的,则实施例一的执行主体自然可以获取数据源中的各个或各种候选数据对应的数据标签信息。若候选数据对应的标签是实施例一的执行主体以外的其他主体设置的,则实施例一的执行主体可以从所述其他主体处获取数据源中的各个或各种候选数据对应的数据标签信息,例如所述其他主体可以将数据源中的各个或各种候选数据对应的数据标签信息发送给实施例一的执行主体。
由于实施例一的执行主体可以获取数据源中的各个或各种候选数据对应的数据标签信息,则当确定了初始SQL语句表征的数据访问请求所请求访问的目标数据,实施例一的执行主体就可以确定目标数据的数据标签信息。
由于候选数据的数据标签信息用于表征候选数据对应的标签,目标数据的数据标签信息自然可以用于表征目标数据对应的标签,和/或,目标数据的数据标签信息可以用于表征请求访问的目标数据的范围,即请求访问的是具有“数据标签信息所表征的标签”的数据,具有“数据标签信息所表征的标签”的数据就是目标数据,故数据标签信息可以表征请求访问的目标数据的范围和特点。
S1033:获取所述初始SQL语句对应的数据访问请求方的主体标签信息;
各个数据访问请求方可以具有对应的标签,数据访问请求方对应的标签可以是实施例一的执行主体设置的,也可以是实施例一的执行主体以外的其他主体(所述其他主体包括但不限于数据访问请求方本身或其他第三方应用)设置的。
数据访问请求方对应的标签可以有一种或多种标签类型,每个数据访问请求方可以对应一种或多种类型的标签。其中,标签类型包括但不限于枚举型和/或值域型和/或层级型,即标签可以包括枚举型标签(即类型为枚举型的标签)和/或值域型标签(即类型为值域型的标签)和/或层级型标签(即类型为层级型的标签)。具体的,多个枚举型标签可以同属一个标签集合,单个标签集合中的标签可以属于同一个业务集,同一标签集合中的各个枚举型标签之间相互独立或互不关联;各个值域型标签都对应有(一定的)级别范围或值域,各个值域型标签对应的级别范围或值域可以不同;各个层级型标签都对应有(一定的)层级,各个层级型标签对应的层级可以不同,即层级型标签为按照层级(或级别)分类的标签。
实施例一的执行主体可以获取“初始SQL语句对应的数据访问请求方”的主体标签信息。其中,数据访问请求方的主体标签信息用于表征数据访问请求方对应的标签。
例如,数据访问请求中可以包含数据访问请求方对应的主体标签信息,即实施例一的执行主体获取初始SQL语句,就相当于获取了初始SQL语句对应的数据访问请求方的主体标签信息。
或者,数据访问请求中可以不包含数据访问请求方的主体标签信息,数据访问请求方或“数据访问请求方以外的其他主体”除向实施例一的执行主体发送数据访问请求外,还可以将数据访问请求方的主体标签信息发送给实施例一的执行主体。一般的,数据访问请求方或“数据访问请求方以外的其他主体”可以将数据访问请求和数据访问请求方的主体标签信息同时发送给实施例一的执行主体。若数据访问请求和数据访问请求方的主体标签信息不是同时发送给实施例一的执行主体的,则数据访问请求和数据访问请求方的主体标签信息之间可以具有用于将两者对应起来的信息,以便实施例一的执行主体判断数据访问请求与“数据访问请求方的主体标签信息”的对应关系,即判断哪个初始SQL语句对应哪个主体标签信息。
实施例一中,所述将数据访问请求和数据访问请求方的主体标签信息对应起来的信息包括但不限于时间信息。其中,实施例一的执行主体获取到某数据访问请求后,可以将该数据访问请求之前最新获取的“数据访问请求方的主体标签信息”,作为该数据访问请求对应的“数据访问请求方的主体标签信息”;或者将该数据访问请求之后最新获取的主体标签信息,作为该数据访问请求对应的“数据访问请求方的主体标签信息”。相应的,实施例一的执行主体获取到某“数据访问请求方的主体标签信息”后,可以将该“数据访问请求方的主体标签信息”之前最新获取的数据访问请求,作为该“数据访问请求方的主体标签信息”对应的数据访问请求;或者将该“数据访问请求方的主体标签信息”之后最新获取的数据访问请求,作为该“数据访问请求方的主体标签信息”对应的数据访问请求。
S1035:确定所述主体标签信息对应的匹配策略,根据所述匹配策略将所述主体标签信息与所述数据标签信息进行匹配,根据匹配结果确定所述数据访问请求方的访问规则。
获取“初始SQL语句对应的数据访问请求方”的主体标签信息后,实施例一的执行主体可以确定“初始SQL语句对应的数据访问请求方”的主体标签信息所对应的匹配策略,根据匹配策略将“初始SQL语句对应的数据访问请求方”的主体标签信息与目标数据的数据标签信息进行匹配,得到匹配结果,根据匹配结果确定“初始SQL语句对应的数据访问请求方”的访问规则(对应图2中“获取用户访问权限”)。其中,根据匹配结果确定数据访问请求方的访问规则可以包括:根据匹配结果确定目标数据中,允许数据访问请求方访问的数据。即所述访问规则可以包含目标数据中,允许数据访问请求方访问的数据(对应图2中“获取到用户访问权限”,获取到用户访问权限意味着存在允许数据访问请求方访问的数据)。
根据主体标签信息的不同,匹配策略可能包括(但不限于)如下1.1和/或1.2和/或1.3所述的情况:
1.1、主体标签信息包括枚举型标签
若“初始SQL语句对应的数据访问请求方”的主体标签信息表征的标签中包括枚举型标签,则枚举型标签对应的匹配策略包括,将“初始SQL语句对应的数据访问请求方”的主体标签信息中的枚举型标签,与目标数据的数据标签信息中的枚举型标签进行匹配,即匹配策略是标签直接匹配方式。
这种情况下,若“初始SQL语句对应的数据访问请求方”的主体标签信息中的某枚举型标签,与数据标签信息中的某枚举型标签能够匹配或对应上,则该两个枚举型标签匹配或对应成功;或,若“初始SQL语句对应的数据访问请求方”的主体标签信息中的某枚举型标签,与数据标签信息中的某枚举型标签不能够匹配或对应上,则该两个枚举型标签匹配或对应不成功。
如上所述,每个或每种目标数据都对应有一种或多种标签,则对于某数据访问请求方,若该数据访问请求方的某枚举型标签,与数据标签信息中的某枚举型标签能够匹配或对应成功,则数据标签信息中的该枚举型标签对应的目标数据,就是该数据访问请求方被允许访问的数据,即根据匹配结果确定了目标数据中,允许该数据访问请求方访问的数据;或者,该数据访问请求方的某枚举型标签,与数据标签信息中的各枚举型标签均匹配或对应不成功,则数据标签信息中的该枚举型标签对应的目标数据,就是该数据访问请求方被拒绝访问的数据。
1.2、主体标签信息包括值域型标签
若“初始SQL语句对应的数据访问请求方”的主体标签信息表征的标签中包括值域型标签,则值域型标签对应的匹配策略包括,将“初始SQL语句对应的数据访问请求方”的主体标签信息中的值域型标签对应的级别范围或值域,与目标数据的数据标签信息中的值域型标签对应的级别范围或值域进行匹配,即匹配策略是级别范围或值域匹配方式。
这种情况下,若“初始SQL语句对应的数据访问请求方”的主体标签信息中的某值域型标签对应的级别范围或值域,高于数据标签信息中的某值域型标签对应的级别范围或值域,则该两个值域型标签匹配或对应成功;或者,若“初始SQL语句对应的数据访问请求方”的主体标签信息中的某值域型标签对应的级别范围或值域,包含数据标签信息中的某值域型标签对应的级别范围或值域,则该两个值域型标签匹配或对应成功;或者,若“初始SQL语句对应的数据访问请求方”的主体标签信息中的某值域型标签对应的级别范围或值域,不高于或不包含数据标签信息中的某值域型标签对应的级别范围或值域,则该两个值域型标签匹配或对应不成功。
如上所述,每个或每种目标数据都对应有一种或多种标签,则对于某数据访问请求方,若该数据访问请求方的某值域型标签,与数据标签信息中的某值域型标签能够匹配或对应成功,则数据标签信息中的该值域型标签对应的目标数据,就是该数据访问请求方被允许访问的数据,即根据匹配结果确定了目标数据中,允许该数据访问请求方访问的数据;或者,该数据访问请求方的某值域型标签,与数据标签信息中的各值域型标签均匹配或对应不成功,则数据标签信息中的该值域型标签对应的目标数据,就是该数据访问请求方被拒绝访问的数据。
1.3、主体标签信息包括层级型标签
若“初始SQL语句对应的数据访问请求方”的主体标签信息表征的标签中包括层级型标签,则层级型标签对应的匹配策略包括,将“初始SQL语句对应的数据访问请求方”的主体标签信息中的层级型标签对应的层级,与目标数据的数据标签信息中的层级型标签对应的层级进行匹配,即匹配策略是层级匹配方式。
这种情况下,若“初始SQL语句对应的数据访问请求方”的主体标签信息中的某层级型标签对应的层级,高于或包含数据标签信息中的某层级型标签对应的层级,则该两个层级型标签匹配或对应成功;或者,若数据标签信息中的某层级型标签对应的层级,归属于“初始SQL语句对应的数据访问请求方”的主体标签信息中的某层级型标签对应的层级(例如“初始SQL语句对应的数据访问请求方”的主体标签信息中的该层级型标签是父级标签,数据标签信息中的该层级型标签是该父级标签下属的子级标签),则该两个层级型标签匹配或对应成功;或者,若“初始SQL语句对应的数据访问请求方”的主体标签信息中的某层级型标签对应的层级,不高于或不包含数据标签信息中的某层级型标签对应的层级,则该两个层级型标签匹配或对应不成功;或者,若数据标签信息中的某层级型标签对应的层级,不归属于“初始SQL语句对应的数据访问请求方”的主体标签信息中的某层级型标签对应的层级,则该两个层级型标签匹配或对应不成功。
如上所述,每个或每种目标数据都对应有一种或多种标签,则对于某数据访问请求方,若该数据访问请求方的某层级型标签,与数据标签信息中的某层级型标签能够匹配或对应成功,则数据标签信息中的该层级型标签对应的目标数据,就是该数据访问请求方被允许访问的数据,即根据匹配结果确定了目标数据中,允许该数据访问请求方访问的数据;或者,该数据访问请求方的某层级型标签,与数据标签信息中的各层级型标签均匹配或对应不成功,则数据标签信息中的该层级型标签对应的目标数据,就是该数据访问请求方被拒绝访问的数据。
由于“初始SQL语句对应的数据访问请求方”的主体标签信息所表征的标签可能有一种或多种类型的标签,故将“初始SQL语句对应的数据访问请求方”的主体标签信息与目标数据的数据标签信息进行匹配时,可能产生1.1至1.3所述的一种或多种情况。
由上可知,通过匹配策略,可以选择出匹配或对应成功的标签,故匹配策略也可以称为过滤策略。
以下将目标数据中,允许数据访问请求方访问的数据称为允许访问数据。实施例一的执行主体可以为数据访问请求方设置数据访问权限。为数据访问请求方设置数据访问权限,可以通过为允许访问数据设置访问权限的方式实现。
例如有的允许访问数据只允许查看,不允许修改,有的允许访问数据允许查看和修改,根据允许访问数据的不同,每个或每种允许访问数据可以对应不同的访问权限。实施例一的执行主体可以为每个或每种允许访问数据设置访问权限,相当于为数据访问请求方设置了数据访问权限。数据访问请求方的数据访问权限,包含了每个或每种允许访问数据的访问权限,从而可以控制数据访问请求方按照数据访问权限访问允许访问数据,即控制数据访问请求方按照每个或每种允许访问数据对应的访问权限访问允许访问数据。
例如为允许访问数据设置可读不可修改的访问权限,则数据访问请求方对允许访问数据的数据访问权限为可读不可修改。数据访问权限可以是数字形式或其他形式,访问规则可以包含数据访问权限。
确定初始SQL语句对应的数据访问请求方的访问规则后,实施例一的执行主体可以生成包含“初始SQL语句对应的数据访问请求方的访问规则”的目标SQL语句。沿用上例,初始SQL语句是SELECT A.ID,B.ID FROM A LEFT JOIN B ON A.ID=B.ID LEFT JOIN C ONB.ID=C.ID,允许访问数据包含客体表A,且数据访问请求方对表A的访问权限是ID>100,则目标SQL语句可以是SELECT A.ID,B.ID FROM A LEFT JOIN B ON A.ID=B.ID LEFT JOIN CON B.ID=C.ID WHERE A.ID>100。
实施例一中,实施例一的执行主体可以根据允许访问数据所在的数据源的方言(若允许访问数据存在于不同数据源,则根据允许访问数据所在的不同数据源的方言),构造查询条件(即将允许访问数据的标签转化为filter的查询条件,便于SQL查询和数据源查询允许访问数据),还原到初始SQL语句(即改写SQL语句),从而生成目标SQL语句。
S105:(执行主体)执行所述目标SQL语句,以控制所述数据访问请求方按照所述访问规则进行数据访问操作;或使数据源执行所述目标SQL语句,以控制所述数据访问请求方按照所述访问规则进行数据访问操作。
生成目标SQL语句后,实施例一的执行主体可以执行目标SQL语句或使允许访问数据所在的数据源执行目标SQL语句。下面分情况说明:
情况一:实施例一的执行主体执行目标SQL语句
实施例一的执行主体可以执行目标SQL语句,以控制数据访问请求方按照访问规则进行数据访问操作。
这种情况下,控制数据访问请求方按照访问规则进行数据访问操作可以包括:允许数据访问请求方访问允许访问数据(若设置了数据访问权限,则允许数据访问请求方按照数据访问权限访问允许访问数据);或,将允许访问数据反馈给数据访问请求方(若设置了数据访问权限,则将允许访问数据反馈给数据访问请求方后,可以控制数据访问请求方按照数据访问权限访问允许访问数据)。
情况二:数据源执行目标SQL语句
实施例一的执行主体可以使允许访问数据的数据源执行目标SQL语句,以控制数据访问请求方按照访问规则进行数据访问操作。例如允许访问数据所在的数据源是数据库,则实施例一的执行主体可以将目标SQL语句下放到(底层)数据库,数据库可以执行目标SQL语句,以控制数据访问请求方按照访问规则进行数据访问操作。
这种情况下,控制数据访问请求方按照访问规则进行数据访问操作可以包括:允许数据访问请求方访问允许访问数据(若设置了数据访问权限,则允许数据访问请求方按照数据访问权限访问允许访问数据);或,将允许访问数据反馈给数据访问请求方(若设置了数据访问权限,则将允许访问数据反馈给数据访问请求方后,可以控制数据访问请求方按照数据访问权限访问允许访问数据)。
实施例一中,若不存在允许访问数据(对应图2中“用户无访问权限”),即不存在允许数据访问请求方访问的目标数据,则实施例一的执行主体可以向数据访问请求方反馈相应信息(信息的具体形式或内容不进行具体限定)。
实施例一中,数据源类型包括但不限于:
神通数据库:神通数据库管理系统是天津神舟通用数据技术有限公司自主研发的大型通用数据库产品,拥有全文检索、层次查询、结果集缓存、并行数据迁移、双机热备、水平分区、并行查询和数据库集群等增强型功能,并具有海量数据管理和大规模并发处理能力。系统功能完善、性能稳定,可广泛应用于各类企事业单位、政府机关的信息化建设。
或,
神通KSTORE数据库:神通KSTORE数据库是一款高性能、高安全、高可靠的企业级关系型数据库,采用客户端/服务器、单进程多线程架构,支持单机和一主多备部署方式,备机可读,支持双机高可用和读扩展,将有力支撑企业数字化转型,助推数字经济健康发展。
或,
ORACLE数据库:ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库,它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。
或,
HIVE数据库:hive是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop分布式文件系统中的数据:可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能;可以将SQL语句转换为MapReduce任务运行,通过自己的SQL查询分析需要的内容,这套SQL简称Hive SQL,使不熟悉mapreduce的用户可以很方便地利用SQL语言查询、汇总和分析数据。而mapreduce开发人员可以把自己写的mapper和reducer作为插件来支持hive做更复杂的数据分析。它与关系型数据库的SQL略有不同,但支持了绝大多数的语句如DDL、DML以及常见的聚合函数、连接查询、条件查询。它还提供了一系列的工具进行数据提取转化加载,用来存储、查询和分析存储在Hadoop中的大规模数据集,并支持UDF(User-Defined Function)、UDAF(User-DefinedAggregateFunction)和UDTF(User-Defined Table-Generating Function),也可以实现对map和reduce函数的定制,为数据操作提供了良好的伸缩性和可扩展性。
实施例一中,通过用于表征数据访问请求的初始SQL语句生成AST语法树,根据AST语法树确定数据访问请求方的访问规则,并将访问规则融入新的目标SQL语句,通过执行新的目标SQL语句,就可以便捷地控制数据访问请求方按照访问规则进行数据访问操作,提高数据访问控制效果和效率。
实施例一中,目标数据可以具体到行级,从而实现了对行级数据的访问控制。允许访问数据可以来自不同数据源,且不限定允许访问数据的数据量,从而实现了对大数据量的异构数据源的访问控制。这样一来,就打破了传统数据库的表级访问控制,提高了数据访问控制的粒度,大大的增加了常用数据源的可用性和易用性。
实施例一中,通过标签确定匹配策略,根据标签匹配确定访问规则,控制数据访问请求方按照访问规则进行数据访问操作,提高了匹配结果准确性和访问规则合理性,也就提高了数据访问控制效果和效率。
实施例一中,可以对各个或各种候选数据设置标签,以及对各种数据访问请求方设置标签,通过标签确定匹配策略,进而确定访问规则,从而能够实现对各个或各种候选数据或各种数据访问请求方的数据访问控制,具有广泛的适用性,解决了大数据量细粒度数据访问控制问题。
实施例一中,获取初始SQL语句后生成语法树,得到目标数据。将目标数据中的允许访问数据的访问规则或查询条件还原或添加到初始SQL语句,得到新的目标SQL语句,即将语法树翻译成了新的目标SQL语句。执行目标SQL语句,就相当于执行了访问规则,从而降低了执行访问规则的难度,提高了执行访问规则的便捷度,适用于各种数据库。
实施例一结合SQL语句解析和数据访问控制,实现了高性能的大数据量行级访问控制,打破了传统数据库软件表级权限管理的壁垒,提升了数据库产品的应用场景。
如图3所示,本说明书第二个实施例提供一种与实施例一所述数据访问控制方法对应的数据访问控制装置,包括:
解析模块202,用于获取用于表征数据访问请求的初始SQL语句,对所述初始SQL语句进行解析,生成AST语法树;
判断模块204,用于根据所述AST语法树确定所述初始SQL语句对应的数据访问请求方的访问规则,生成包含所述访问规则的目标SQL语句;
执行模块206,用于执行所述目标SQL语句,以控制所述数据访问请求方按照所述访问规则进行数据访问操作;或使数据源执行所述目标SQL语句,以控制所述数据访问请求方按照所述访问规则进行数据访问操作。
可选的,根据所述AST语法树确定所述初始SQL语句对应的数据访问请求方的访问规则包括:
使用深度优先算法遍历所述AST语法树的所有节点,确定所述初始SQL语句所请求访问的目标数据,并确定所述目标数据的数据标签信息;其中,所述目标数据的数据标签信息用于表征所述目标数据对应的标签;和/或,所述目标数据的数据标签信息用于表征请求访问的目标数据的范围;
获取所述初始SQL语句对应的数据访问请求方的主体标签信息;其中,所述数据访问请求方的主体标签信息用于表征所述数据访问请求方对应的标签;
确定所述主体标签信息对应的匹配策略,根据所述匹配策略将所述主体标签信息与所述数据标签信息进行匹配,根据匹配结果确定所述数据访问请求方的访问规则。
可选的,所述标签包括:
枚举型标签,且各个枚举型标签之间相互独立;
和/或,
值域型标签,且各个所述值域型标签对应有级别范围或值域;
和/或,
层级型标签,且各个所述层级型标签对应有层级。
可选的,确定所述主体标签信息对应的匹配策略包括:
若所述主体标签信息表征的标签中包括枚举型标签,则所述枚举型标签对应的匹配策略包括,将所述主体标签信息中的枚举型标签与所述数据标签信息中的枚举型标签进行匹配;
和/或,
若所述主体标签信息表征的标签中包括值域型标签,则所述值域型标签对应的匹配策略包括,将所述主体标签信息中的值域型标签对应的级别范围或值域,与所述数据标签信息中的值域型标签对应的级别范围或值域进行匹配;
和/或,
若所述主体标签信息表征的标签中包括层级型标签,则所述层级型标签对应的匹配策略包括,将所述主体标签信息中的层级型标签对应的层级,与所述数据标签信息中的层级型标签对应的层级进行匹配。
可选的,根据匹配结果确定所述数据访问请求方的访问规则包括:
根据匹配结果确定所述目标数据中,允许所述数据访问请求方访问的数据。
可选的,所述目标数据来自于数据源;所述判断模块204还用于,获取用于表征数据访问请求的初始SQL语句前,获取数据源中的各种数据对应的数据标签信息。
可选的,所述访问规则包括允许访问数据,所述允许访问数据为所述目标数据中,允许所述数据访问请求方访问的数据;
控制所述数据访问请求方按照所述访问规则进行数据访问操作包括:
允许所述数据访问请求方访问所述允许访问数据;
或,
将所述允许访问数据反馈给所述数据访问请求方。
可选的,所述访问规则包括允许访问数据,所述允许访问数据为所述目标数据中,允许所述数据访问请求方访问的数据;
所述目标SQL语句中包含所述数据访问请求方的数据访问权限。
可选的,控制所述数据访问请求方按照所述访问规则进行数据访问操作包括:
允许所述数据访问请求方按照所述访问权限访问所述允许访问数据;
或,
将所述允许访问数据反馈给所述数据访问请求方,控制所述数据访问请求方按照所述数据访问权限访问所述允许访问数据。
本说明书第三个实施例提供一种数据访问控制设备,包括:
至少一个处理器;
以及,
与所述至少一个处理器通信连接的存储器;
其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,使所述至少一个处理器能够执行实施例一所述的数据访问控制方法。
本说明书第四个实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现实施例一所述的数据访问控制方法。
上述各实施例可以结合使用,不同实施例之间或同一实施例内的名称相同的模块可以是相同或不同的模块。
以上所述仅为本说明书实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (12)
1.一种数据访问控制方法,其特征在于,所述方法包括:
获取用于表征数据访问请求的初始SQL语句,对所述初始SQL语句进行解析,生成AST语法树;
根据所述AST语法树确定所述初始SQL语句对应的数据访问请求方的访问规则,生成包含所述访问规则的目标SQL语句;
执行所述目标SQL语句,以控制所述数据访问请求方按照所述访问规则进行数据访问操作;或使数据源执行所述目标SQL语句,以控制所述数据访问请求方按照所述访问规则进行数据访问操作。
2.如权利要求1所述的方法,其特征在于,根据所述AST语法树确定所述初始SQL语句对应的数据访问请求方的访问规则包括:
使用深度优先算法遍历所述AST语法树的所有节点,确定所述初始SQL语句所请求访问的目标数据,并确定所述目标数据的数据标签信息;其中,所述目标数据的数据标签信息用于表征所述目标数据对应的标签,和/或,所述目标数据的数据标签信息用于表征请求访问的目标数据的范围;
获取所述初始SQL语句对应的数据访问请求方的主体标签信息;其中,所述数据访问请求方的主体标签信息用于表征所述数据访问请求方对应的标签;
确定所述主体标签信息对应的匹配策略,根据所述匹配策略将所述主体标签信息与所述数据标签信息进行匹配,根据匹配结果确定所述数据访问请求方的访问规则。
3.如权利要求2所述的方法,其特征在于,所述标签包括:
枚举型标签,且各个枚举型标签之间相互独立;
和/或,
值域型标签,且各个所述值域型标签对应有级别范围或值域;
和/或,
层级型标签,且各个所述层级型标签对应有层级。
4.如权利要求3所述的方法,其特征在于,确定所述主体标签信息对应的匹配策略包括:
若所述主体标签信息表征的标签中包括枚举型标签,则所述枚举型标签对应的匹配策略包括,将所述主体标签信息中的枚举型标签与所述数据标签信息中的枚举型标签进行匹配;
和/或,
若所述主体标签信息表征的标签中包括值域型标签,则所述值域型标签对应的匹配策略包括,将所述主体标签信息中的值域型标签对应的级别范围或值域,与所述数据标签信息中的值域型标签对应的级别范围或值域进行匹配;
和/或,
若所述主体标签信息表征的标签中包括层级型标签,则所述层级型标签对应的匹配策略包括,将所述主体标签信息中的层级型标签对应的层级,与所述数据标签信息中的层级型标签对应的层级进行匹配。
5.如权利要求2至4中任一项所述的方法,其特征在于,根据匹配结果确定所述数据访问请求方的访问规则包括:
根据匹配结果确定所述目标数据中,允许所述数据访问请求方访问的数据。
6.如权利要求2所述的方法,其特征在于,所述目标数据来自于数据源;
获取用于表征数据访问请求的初始SQL语句前,所述方法还包括:
获取数据源中的各种数据对应的数据标签信息。
7.如权利要求2所述的方法,其特征在于,所述访问规则包括允许访问数据,所述允许访问数据为所述目标数据中,允许所述数据访问请求方访问的数据;
控制所述数据访问请求方按照所述访问规则进行数据访问操作包括:
允许所述数据访问请求方访问所述允许访问数据;
或,
将所述允许访问数据反馈给所述数据访问请求方。
8.如权利要求2所述的方法,其特征在于,所述访问规则包括允许访问数据,所述允许访问数据为所述目标数据中,允许所述数据访问请求方访问的数据;
所述目标SQL语句中包含所述数据访问请求方的数据访问权限。
9.如权利要求8所述的方法,其特征在于,控制所述数据访问请求方按照所述访问规则进行数据访问操作包括:
允许所述数据访问请求方按照所述访问权限访问所述允许访问数据;
或,
将所述允许访问数据反馈给所述数据访问请求方,控制所述数据访问请求方按照所述数据访问权限访问所述允许访问数据。
10.一种数据访问控制装置,其特征在于,所述装置包括:
解析模块,用于获取用于表征数据访问请求的初始SQL语句,对所述初始SQL语句进行解析,生成AST语法树;
判断模块,用于根据所述AST语法树确定所述初始SQL语句对应的数据访问请求方的访问规则,生成包含所述访问规则的目标SQL语句;
执行模块,用于执行所述目标SQL语句,以控制所述数据访问请求方按照所述访问规则进行数据访问操作;或使数据源执行所述目标SQL语句,以控制所述数据访问请求方按照所述访问规则进行数据访问操作。
11.一种数据访问控制设备,其特征在于,包括:
至少一个处理器;
以及,
与所述至少一个处理器通信连接的存储器;
其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,使所述至少一个处理器能够执行权利要求1至9中任一项所述的数据访问控制方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现权利要求1至9中任一项所述的数据访问控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310926727.1A CN116662373A (zh) | 2023-07-27 | 2023-07-27 | 一种数据访问控制方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310926727.1A CN116662373A (zh) | 2023-07-27 | 2023-07-27 | 一种数据访问控制方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116662373A true CN116662373A (zh) | 2023-08-29 |
Family
ID=87715628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310926727.1A Pending CN116662373A (zh) | 2023-07-27 | 2023-07-27 | 一种数据访问控制方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116662373A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103064876A (zh) * | 2012-10-30 | 2013-04-24 | 中国标准化研究院 | 面向地理信息应用的空间数据服务化获取方法 |
CN110196861A (zh) * | 2018-02-24 | 2019-09-03 | 中兴通讯股份有限公司 | 一种数据脱敏方法和装置 |
CN110909386A (zh) * | 2019-11-21 | 2020-03-24 | 福建南威软件有限公司 | 一种针对多种数据源的统一授权访问方法及系统 |
CN111177788A (zh) * | 2020-01-07 | 2020-05-19 | 北京启明星辰信息安全技术有限公司 | Hive的动态脱敏方法及动态脱敏系统 |
CN114048508A (zh) * | 2021-11-23 | 2022-02-15 | 北京神舟航天软件技术股份有限公司 | 一种基于标签的信息资产强制访问控制方法 |
CN114064606A (zh) * | 2021-10-09 | 2022-02-18 | 阿里云计算有限公司 | 数据库迁移方法、装置、设备、存储介质和系统 |
CN114385763A (zh) * | 2020-10-22 | 2022-04-22 | 北京鸿享技术服务有限公司 | 数据血缘分析方法、装置、系统及可读存储介质 |
-
2023
- 2023-07-27 CN CN202310926727.1A patent/CN116662373A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103064876A (zh) * | 2012-10-30 | 2013-04-24 | 中国标准化研究院 | 面向地理信息应用的空间数据服务化获取方法 |
CN110196861A (zh) * | 2018-02-24 | 2019-09-03 | 中兴通讯股份有限公司 | 一种数据脱敏方法和装置 |
CN110909386A (zh) * | 2019-11-21 | 2020-03-24 | 福建南威软件有限公司 | 一种针对多种数据源的统一授权访问方法及系统 |
CN111177788A (zh) * | 2020-01-07 | 2020-05-19 | 北京启明星辰信息安全技术有限公司 | Hive的动态脱敏方法及动态脱敏系统 |
CN114385763A (zh) * | 2020-10-22 | 2022-04-22 | 北京鸿享技术服务有限公司 | 数据血缘分析方法、装置、系统及可读存储介质 |
CN114064606A (zh) * | 2021-10-09 | 2022-02-18 | 阿里云计算有限公司 | 数据库迁移方法、装置、设备、存储介质和系统 |
CN114048508A (zh) * | 2021-11-23 | 2022-02-15 | 北京神舟航天软件技术股份有限公司 | 一种基于标签的信息资产强制访问控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11567997B2 (en) | Query language interoperabtility in a graph database | |
US20210385087A1 (en) | Zero-knowledge identity verification in a distributed computing system | |
US11082226B2 (en) | Zero-knowledge identity verification in a distributed computing system | |
US9081978B1 (en) | Storing tokenized information in untrusted environments | |
US9798737B2 (en) | Systems and methods for in-place records management and content lifecycle management | |
US9286393B2 (en) | Performing a function on rows of data determined from transitive relationships between columns | |
CN102129469B (zh) | 一种面向虚拟实验的非结构化数据访问方法 | |
WO2020024904A1 (zh) | 用于搜索区块链数据的方法、设备及可读存储介质 | |
US20230127055A1 (en) | Global column indexing in a graph database | |
Sicari et al. | Security&privacy issues and challenges in NoSQL databases | |
WO2019147412A1 (en) | System and method for using policy to achieve data segmentation | |
US11741258B2 (en) | Dynamic data dissemination under declarative data subject constraints | |
Varga et al. | Introducing Microsoft SQL Server 2016: Mission-Critical Applications, Deeper Insights, Hyperscale Cloud | |
CN114969819A (zh) | 数据资产风险发现方法和装置 | |
Zheng | Database as a service-current issues and its future | |
CN114817974A (zh) | 动态数据脱敏方法及系统、数据安全处理方法及系统 | |
CN110928963B (zh) | 针对运维业务数据表的列级权限知识图谱构建方法 | |
KR102253841B1 (ko) | 대용량 분산 파일 시스템에서 데이터의 수정을 포함하는 트랜잭션 처리 장치 및 컴퓨터로 읽을 수 있는 기록매체 | |
US11372859B2 (en) | Efficiently supporting value style access of MOBs stored in SQL LOB column by providing value based semantics for LOBs in RDBMS | |
CN115292353B (zh) | 数据查询方法、装置、计算机设备和存储介质 | |
US10942924B2 (en) | LOB query performance via automatic inference of locator-less LOB by value semantics | |
US11205049B2 (en) | Method for managing semantic information on M2M/IoT platform | |
CN116662373A (zh) | 一种数据访问控制方法、装置、设备及介质 | |
US11500837B1 (en) | Automating optimizations for items in a hierarchical data store | |
CN113127906A (zh) | 基于c/s架构的统一权限管理平台、方法及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |