CN111400681A - 数据权限处理方法、装置及设备 - Google Patents
数据权限处理方法、装置及设备 Download PDFInfo
- Publication number
- CN111400681A CN111400681A CN202010266153.6A CN202010266153A CN111400681A CN 111400681 A CN111400681 A CN 111400681A CN 202010266153 A CN202010266153 A CN 202010266153A CN 111400681 A CN111400681 A CN 111400681A
- Authority
- CN
- China
- Prior art keywords
- role
- authority
- rule
- data
- permission
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例提供了一种数据权限处理方法、装置及设备,其中,方法包括:确定通过业务程序产生原始SQL语句的用户所对应的角色标识;根据所述角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则,所述角色规则库中包含多个角色标识及其对应的数据权限规则;识别所述原始SQL语句的操作类型,并根据所述该角色标识对应的数据权限规则,对所述该角色标识在该操作类型下的操作权限进行适配;如果适配成功,则选择与所述该操作类型对应的权限过滤器,依照所述该角色标识对应的数据权限规则对所述原始SQL语句进行权限过滤,从而解决现有技术中数据权限的规则逻辑与业务代码耦合性强、对***的入侵性高,后期权限改动代价大的问题。
Description
技术领域
本文件涉及计算机领域,尤其涉及一种数据权限处理方法、装置及设备。
背景技术
数据鉴权(authentication):是指验证用户是否拥有访问***数据的权利。
传统的数据鉴权多是通过开发人员硬编码实现的,即将数据权限的规则逻辑与业务代码耦合在一起。这种方式会造成规则逻辑与业务代码的耦合性强,同时对***的入侵性也高,后期权限改动代价大。
发明内容
本说明书提供了一种数据权限处理方法、装置及设备,用以解决现有技术中数据权限的规则逻辑与业务代码耦合性强、对***的入侵性高,后期权限改动代价大的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本说明书实施例提供了一种数据权限处理方法,包括:
确定通过业务程序产生原始SQL语句的用户所对应的角色标识;
根据所述角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则,所述角色规则库中包含多个角色标识及其对应的数据权限规则;
识别所述原始SQL语句的操作类型,并根据所述该角色标识对应的数据权限规则,对所述该角色标识在该操作类型下的操作权限进行适配;
如果适配成功,则选择与所述该操作类型对应的权限过滤器,依照所述该角色标识对应的数据权限规则对所述原始SQL语句进行权限过滤。
第二方面,本说明书实施例提供了一种数据权限处理装置,包括:
角色确定模块,确定通过业务程序产生原始SQL语句的用户所对应的角色标识;
权限匹配模块,根据所述角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则,所述角色规则库中包含多个角色标识及其对应的数据权限规则;
权限适配模块,识别所述原始SQL语句的操作类型,并根据所述该角色标识对应的数据权限规则,对所述该角色标识在该操作类型下的操作权限进行适配;
权限过滤模块,如果适配成功,则选择与所述该操作类型对应的权限过滤器,依照所述该角色标识对应的数据权限规则对所述原始SQL语句进行权限过滤。
第三方面,本说明书实施例提供了一种数据权限处理设备,包括:
处理器;以及,
被安排成存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器:
确定通过业务程序产生原始SQL语句的用户所对应的角色标识;
根据所述角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则,所述角色规则库中包含多个角色标识及其对应的数据权限规则;
识别所述原始SQL语句的操作类型,并根据所述该角色标识对应的数据权限规则,对所述该角色标识在该操作类型下的操作权限进行适配;
如果适配成功,则选择与所述该操作类型对应的权限过滤器,依照所述该角色标识对应的数据权限规则对所述原始SQL语句进行权限过滤。
第四方面,本说明书实施例提供了一种存储介质。该存储介质用于存储计算机可执行指令。所述计算机可执行指令在被执行时实现以下流程:
确定通过业务程序产生原始SQL语句的用户所对应的角色标识;
根据所述角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则,所述角色规则库中包含多个角色标识及其对应的数据权限规则;
识别所述原始SQL语句的操作类型,并根据所述该角色标识对应的数据权限规则,对所述该角色标识在该操作类型下的操作权限进行适配;
如果适配成功,则选择与所述该操作类型对应的权限过滤器,依照所述该角色标识对应的数据权限规则对所述原始SQL语句进行权限过滤。
本说明书实施例提供的数据权限处理方法、装置及设备,通过确定通过业务程序产生原始SQL语句的用户所对应的角色标识;根据角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则,角色规则库中包含多个角色标识及其对应的数据权限规则;识别原始SQL语句的操作类型,并根据该角色标识对应的数据权限规则,对该角色标识在该操作类型下的操作权限进行适配;如果适配成功,则选择与该操作类型对应的权限过滤器,依照该角色标识对应的数据权限规则对原始SQL语句进行权限过滤。由于本说明书实施例是在确定角色标识后,先匹配该角色标识对应的数据权限规则;再对该角色标识在原始SQL语句的操作类型下的操作权限进行适配后,确定具体的权限过滤操作,降低了角色标识与权限过滤操作之间的强耦合关系,从而有效解决了现有技术中数据权限的规则逻辑与业务代码耦合性强、对***的入侵性高,后期权限改动代价大的问题。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例提供的数据权限处理方法的应用场景示意图;
图2为本说明书实施例提供的数据权限处理方法的流程示意图一;
图3为本说明书实施例提供的数据权限处理方法的流程示意图二;
图4为本说明书实施例提供的数据权限处理方法的流程示意图三;
图5为本说明书实施例提供的数据权限处理方法的流程示意图四;
图6为本说明书实施例提供的数据权限处理方法的流程示意图五;
图7为本说明书实施例提供的数据权限处理方法的流程示意图六;
图8为本说明书实施例提供的数据权限处理装置的模块组成示意图;
图9为本说明书实施例提供的数据权限处理设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
图1为本说明书实施例提供的数据权限处理方法的应用场景示意图,如图1所示,该场景包括:业务层、代理层和数据库;其中,在业务层,用户可以触发执行各种业务程序进而实现相应业务逻辑,这些业务逻辑中包括对数据库中的数据进行访问;代理层,用于解决用户在业务层面访问数据库时的数据鉴权问题。代理层中包括:角色规则库、角色权限适配器和权限过滤器。
角色规则库,用于存储多个角色标识及其对应的数据权限规则。其中,角色标识用于区分表征用户所属的角色类别,用户所对应的角色标识可以在业务层通过用户角色映射预先完成设置;数据权限规则用于记录针对目标数据库中数据进行指定操作类型操作的规则,例如针对目标数据库中某一特定数据字段进行指定操作类型的操作。角色规则库中可具体包含角色权限表和权限规则表。其中,角色权限表用于标识角色标识与数据权限规则的对应关系,权限规则表用于存储数据权限规则的规则内容。通过依次查询角色权限表和权限规则表可以确定某一角色标识所对应的数据权限规则内容。
角色权限适配器,用于识别用户通过业务程序产生的原始SQL语句的操作类型,原始SQL语句的操作类型可包括:select(选取)、insert(***)、update(更新)、delete(删除)。在确定该用户对应的角色标识后,利用该角色标识对应的数据权限规则,对该角色标识在该操作类型下的操作权限进行适配。
权限过滤器,用于在角色权限适配器对某一角色标识在某一操作类型下的操作权限成功适配后,依照该角色标识对应的数据权限规则对原始SQL语句进行权限过滤,以形成权限过滤后的SQL语句。该权限过滤后的SQL语句可实现限制用户访问数据库中的数据的权限,即权限过滤器先将权限过滤后的SQL语句返回给业务层,然后由业务层的业务程序发送该权限过滤后的SQL语句到数据库进行数据访问。权限过滤器可根据原始SQL语句的操作类型不同而设置多个,以分别对指定操作类型的原始SQL语句进行权限过滤。
具体地,当用户在业务层通过调用业务程序向数据库发起数据访问请求后,代理层会拦截用户通过业务程序产生的原始SQL语句,以对原始SQL语句进行权限过滤。具体流程包括:确定该用户所对应的角色标识,该角色标识用于表征用户所属的角色类别,例如在一个企业中,角色类别可基于用户职级划分,例如可划分为:员工、中层领导、高层领导、老板等角色,每一个角色对应唯一的角色标识;在确定该用户所对应的角色标识后,角色权限适配器根据该角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则,角色规则库中包含多个角色标识及其对应的数据权限规则;角色权限适配器识别原始SQL语句的操作类型,并根据该角色标识对应的数据权限规则,对该角色标识在该操作类型下的操作权限进行适配;如果适配成功,则角色权限适配器选择与该操作类型对应的权限过滤器,依照该角色标识对应的数据权限规则对原始SQL语句进行权限过滤,形成权限过滤后的SQL语句。该权限过滤后的SQL语句可实现限制用户访问数据库中的数据的权限。
进一步地,角色规则库中可包含角色权限表和权限规则表,角色权限表用于标识角色标识与数据权限规则的对应关系,权限规则表用于存储数据权限规则的规则内容;由此,在根据角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则时,可先从角色权限表中,确定出与该角色标识具有对应关系的数据权限规则;再从权限规则表中,查找与该角色标识具有对应关系的数据权限规则所包含的规则内容。
进一步地,在根据该角色标识对应的数据权限规则,对该角色标识在该操作类型下的操作权限进行适配时,可先通过角色权限适配器对原始SQL语句的操作类型进行适配,确定与原始SQL语句的操作类型相匹配的权限规则解析流程;然后采用该匹配的权限规则解析流程对该角色标识对应的数据权限规则进行解析,如果解析出该角色标识在该操作类型下的操作权限,则适配成功。
进一步地,在选择与该操作类型对应的权限过滤器,依照该角色标识对应的数据权限规则对原始SQL语句进行权限过滤时,可先创建角色权限适配器到与该操作类型对应的权限过滤器之间的路由;然后通过路由,将该角色标识对应的数据权限规则和原始SQL语句发送到相应的权限过滤器;最后,由权限过滤器基于接收到的数据权限规则对原始SQL语句进行权限过滤。
进一步地,在对原始SQL语句进行权限过滤后,可将完成权限过滤的原始SQL语句返回至业务程序,以使业务程序基于权限过滤后的SQL语句访问目标数据库。
进一步地,在识别原始SQL语句的操作类型,并根据该角色标识对应的数据权限规则,对该角色标识在该操作类型下的操作权限进行适配之后,如果适配失败,则向业务程序反馈“无操作权限”的提示信息,以通知业务程序当前用户无权限访问目标数据库。
进一步地,代理层还可以响应于修改角色权限表和/或权限规则表的触发请求,对角色权限表和/或权限规则表进行相应修改,从而实现对角色标识所对应的数据权限规则进行灵活变更。
下面通过多个实施例来进一步说明本说明书的技术方案。
实施例一
基于上述应用场景架构,图2为本说明书实施例提供的数据权限处理方法的流程示意图一,图2中的方法能够由图1中的代理层执行,如图2所示,该方法包括以下步骤:
步骤S102,确定通过业务程序产生原始SQL语句的用户所对应的角色标识。
其中,角色标识用于表征用户所属的角色类别,例如在一个企业中,角色类别可基于用户职级划分,例如可划分为:员工、中层领导、高层领导、老板等角色,每一个角色对应唯一的角色标识。用户所对应的角色标识可以在业务层通过用户角色映射预先完成设置。
当用户在业务层通过调用业务程序向数据库发起数据访问请求后,代理层会拦截用户通过业务程序产生的原始SQL语句,并开始启动对原始SQL语句进行权限过滤的操作流程。而该操作流程的初始,即是确定通过业务程序产生原始SQL语句的用户所对应的角色标识。具体地,代理层根据业务层透传的用户信息(如用户ID)以及所述预置的用户角色映射关系,来确定用户所对应的角色标识。
步骤S104,根据角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则,角色规则库中包含多个角色标识及其对应的数据权限规则。
其中,数据权限规则用于记录针对目标数据库中数据进行指定操作类型操作的规则,例如针对目标数据库中某一特定数据字段进行指定操作类型的操作。通过设置角色规则库,可以对所属不同角色的用户对目标数据库中数据的操作权限进行设置和管理。
具体地,在确定出该用户所对应的角色标识后,代理层中的角色权限适配器会根据该角色标识,从预置的上述角色规则库中匹配该角色标识对应的数据权限规则,从而确定出该用户所享有的所有针对目标数据库中数据的操作权限。
步骤S106,识别原始SQL语句的操作类型,并根据该角色标识对应的数据权限规则,对该角色标识在该操作类型下的操作权限进行适配。
其中,原始SQL语句的操作类型可包括:select(选取)、insert(***)、update(更新)、delete(删除)。通过对原始SQL语句进行语法解析,可以确定出原始SQL语句对应的操作类型。
具体地,在确定出该用户对应的角色标识后,可利用该角色标识对应的所有数据权限规则,对该角色标识在该操作类型下的操作权限进行适配。即判断在该角色标识对应的所有数据权限规则中,是否包含所属于当前原始SQL语句的操作类型的操作权限的规则;如果包含,则适配成功,否则适配失败。
例如,在该角色标识对应的所有数据权限规则中包含操作类型为select(选取)的权限规则,而当前原始SQL语句的操作类型为select(选取),则视为适配成功。如果适配成功,则执行步骤S108,选择与该操作类型对应的权限过滤器,依照该角色标识对应的数据权限规则对原始SQL语句进行权限过滤。
其中,权限过滤器可根据原始SQL语句的操作类型不同而设置多个,以分别对指定操作类型的原始SQL语句进行权限过滤。
具体地,在角色权限适配器对该角色标识在该操作类型下的操作权限成功适配后,相应的权限过滤器可依照该角色标识对应的数据权限规则对原始SQL语句进行权限过滤,以形成权限过滤后的SQL语句。该权限过滤后的SQL语句可实现限制用户访问数据库中的数据的权限。例如,针对目标数据库中某一特定数据字段进行select(选取)的操作。
本说明书实施例提供的数据权限处理方法,通过确定通过业务程序产生原始SQL语句的用户所对应的角色标识;根据角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则,角色规则库中包含多个角色标识及其对应的数据权限规则;识别原始SQL语句的操作类型,并根据该角色标识对应的数据权限规则,对该角色标识在该操作类型下的操作权限进行适配;如果适配成功,则选择与该操作类型对应的权限过滤器,依照该角色标识对应的数据权限规则对原始SQL语句进行权限过滤。由于本说明书实施例是在确定角色标识后,先匹配该角色标识对应的数据权限规则;再对该角色标识在原始SQL语句的操作类型下的操作权限进行适配后,确定具体的权限过滤操作,降低了角色标识与权限过滤操作之间的强耦合关系,从而有效解决了现有技术中数据权限的规则逻辑与业务代码耦合性强、对***的入侵性高,后期权限改动代价大的问题。
实施例二
本实施例在实施例一的基础上,对图2所示的数据权限处理方法进行拓展和补充。
在图2所示的方法中,角色规则库中可包含角色权限表和权限规则表,角色权限表用于标识角色标识与数据权限规则的对应关系,权限规则表用于存储数据权限规则的规则内容;
相应地,如图3所示,所述步骤S104可包括:
S104-2,从角色权限表中,确定出与该角色标识具有对应关系的数据权限规则。
在角色权限表中,每个角色标识均可以对应至少一个数据权限规则,在角色权限表中只记录角色标识与数据权限规则的对应关系。由于在角色权限表中只记录这种对应关系,因此每个数据权限规则可用一个唯一标识的权限ID表示。一个角色标识可同时对应至少一个权限ID。角色标识与权限ID之间存在的这种对应关系,表明该角色标识对应的用户具有该权限ID所指向的数据权限规则所规定的具体操作权限。
具体地,在确定通过业务程序产生原始SQL语句的用户所对应的角色标识后,可先从该角色权限表中确定出与该角色标识具有对应关系的数据权限规则,即具有对应关系的权限ID。
S104-4,从权限规则表中,查找与该角色标识具有对应关系的数据权限规则所包含的规则内容。
在权限规则表中存储了每个数据权限规则的具体规则内容,且每个数据权限规则仅与一个唯一的权限ID相对应。
具体地,在确定出与该角色标识具有对应关系的数据权限规则,即具有对应关系的权限ID后,可通过查询权限规则表,查找到该权限ID所指向的数据权限规则的具体规则内容,即与该角色标识具有对应关系的数据权限规则的规则内容。
通过这种分层次的数据权限规则匹配方式,可以有效降低角色标识与数据权限规则对应关系的设计成本,同时还可以对角色标识与数据权限规则的对应关系进行更灵活的变更,降低变更成本。
例如,在图3所示方法中,还可包括如下步骤:响应于修改角色权限表和/或权限规则表的触发请求,对角色权限表和/或权限规则表进行相应修改。
具体地,当需要对角色标识与数据权限规则的对应关系进行变动时,可以修改角色权限表,例如,可通过修改角色标识与权限ID的对应关系来变更角色标识与数据权限规则的对应关系;也可以修改数据权限规则,例如,可通过修改权限ID所对应数据权限规则的具体规则内容,来变更角色标识与数据权限规则的对应关系。
另外,如图4所述,所述步骤S106可包括:
S106-2,通过角色权限适配器对原始SQL语句的操作类型进行适配,确定与原始SQL语句的操作类型相匹配的权限规则解析流程。
如图1中所示,针对原始SQL语句的操作类型识别,可预先针对每种操作类型设置相应执行识别操作的插件。这些插件被链式地串接在一起,依次对原始SQL语句的操作类型进行识别。当识别出原始SQL语句的操作类型后,从预设的多个权限规则解析流程中选择出与原始SQL语句的操作类型相匹配的权限规则解析流程。该权限规则解析流程可用于解析数据权限规则中,属于当前原始SQL语句的操作类型的数据权限规则。
为实现对数据权限规则中所属不同的操作类型的权限规则进行解析,本实施例会预先配置针对不同的操作类型下的数据权限规则的权限规则解析流程。
S106-4,采用匹配的权限规则解析流程对该角色标识对应的数据权限规则进行解析,如果解析出该角色标识在该操作类型下的操作权限,则适配成功。
具体地,在确定出与原始SQL语句的操作类型相匹配的权限规则解析流程后,可采用该权限规则解析流程对步骤S104中匹配到的该角色标识对应的数据权限规则进行解析,判断在该角色标识对应的所有数据权限规则中,是否包含所属于当前原始SQL语句的操作类型的操作权限的规则;如果包含,则适配成功,否则适配失败。
例如,如果通过该权限规则解析流程在该角色标识对应的所有数据权限规则中解析出包含操作类型为select(选取)的权限规则,而当前原始SQL语句的操作类型为select(选取),则视为适配成功。
进一步地,如图5所述,上述步骤S108可包括:
S108-2,创建角色权限适配器到与该操作类型对应的权限过滤器之间的路由。
具体地,可将角色权限适配器与权限过滤器布设在网络中,二者之间通过建立路由进行数据交互。在确定原始SQL语句的操作类型,并成功对该角色标识在该操作类型下的操作权限进行适配后,既可选择与该操作类型对应的权限过滤器对原始SQL语句进行权限过滤。在选择出执行权限过滤的权限过滤器后,可先创建角色权限适配器到与执行权限过滤的权限过滤器之间的路由。
S108-4,通过路由,将该角色标识对应的数据权限规则和原始SQL语句发送到相应的权限过滤器。
为了减少数据传输量,在传输数据权限规则到对应的权限过滤器的过程中,可只传输与该权限过滤器所匹配的操作类型下的数据权限规则。
S108-6,权限过滤器基于接收到的数据权限规则对原始SQL语句进行权限过滤。
具体地,权限过滤器接收到数据权限规则和原始SQL语句后,可根据数据权限规则的具体规则内容,对原始SQL语句进行权限过滤(语句修改),将原始SQL语句变更为符合相应角色标识所对应的数据权限规则的SQL语句。
进一步地,如图6所述,在完成对原始SQL语句进行权限过滤后,上述方法还包括:
步骤S110,将完成权限过滤的原始SQL语句返回至业务程序,以使业务程序基于权限过滤后的SQL语句访问目标数据库。
具体地,代理层在完成对原始SQL语句的权限过滤后,需要将完成权限过滤的SQL语句返回至业务程序;业务程序将该完成权限过滤的SQL语句发送至目标数据库,以对目标数据库进行限权访问。
进一步地,如图7所述,在所述步骤S106之后,如果适配失败,则还可包括:
步骤S112,向业务程序反馈“无操作权限”的提示信息。该提示信息用于提示用户变更或者撤销本次针对目标数据库的访问操作。
本说明书实施例提供的数据权限处理方法,通过确定通过业务程序产生原始SQL语句的用户所对应的角色标识;根据角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则,角色规则库中包含多个角色标识及其对应的数据权限规则;识别原始SQL语句的操作类型,并根据该角色标识对应的数据权限规则,对该角色标识在该操作类型下的操作权限进行适配;如果适配成功,则选择与该操作类型对应的权限过滤器,依照该角色标识对应的数据权限规则对原始SQL语句进行权限过滤。由于本说明书实施例是在确定角色标识后,先匹配该角色标识对应的数据权限规则;再对该角色标识在原始SQL语句的操作类型下的操作权限进行适配后,确定具体的权限过滤操作,降低了角色标识与权限过滤操作之间的强耦合关系,从而有效解决了现有技术中数据权限的规则逻辑与业务代码耦合性强、对***的入侵性高,后期权限改动代价大的问题。
实施例三
对应上述图2至图7描述的数据权限处理方法,基于相同的技术构思,本说明书实施例还提供一种数据权限处理装置。图8为本说明书实施例提供的数据权限处理装置的模块组成示意图,该装置用于执行图2至图7描述的数据权限处理方法,如图8所示,该装置包括:
角色确定模块201,确定通过业务程序产生原始SQL语句的用户所对应的角色标识;
权限匹配模块202,根据角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则,角色规则库中包含多个角色标识及其对应的数据权限规则;
权限适配模块203,识别原始SQL语句的操作类型,并根据该角色标识对应的数据权限规则,对该角色标识在该操作类型下的操作权限进行适配;
权限过滤模块204,如果适配成功,则选择与该操作类型对应的权限过滤器,依照该角色标识对应的数据权限规则对原始SQL语句进行权限过滤。
本说明书实施例提供的数据权限处理装置,通过确定通过业务程序产生原始SQL语句的用户所对应的角色标识;根据角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则,角色规则库中包含多个角色标识及其对应的数据权限规则;识别原始SQL语句的操作类型,并根据该角色标识对应的数据权限规则,对该角色标识在该操作类型下的操作权限进行适配;如果适配成功,则选择与该操作类型对应的权限过滤器,依照该角色标识对应的数据权限规则对原始SQL语句进行权限过滤。由于本说明书实施例是在确定角色标识后,先匹配该角色标识对应的数据权限规则;再对该角色标识在原始SQL语句的操作类型下的操作权限进行适配后,确定具体的权限过滤操作,降低了角色标识与权限过滤操作之间的强耦合关系,从而有效解决了现有技术中数据权限的规则逻辑与业务代码耦合性强、对***的入侵性高,后期权限改动代价大的问题。
可选地,上述角色规则库中可包含角色权限表和权限规则表,角色权限表用于标识角色标识与数据权限规则的对应关系,权限规则表用于存储数据权限规则的规则内容;
相应地,权限匹配模块202,从角色权限表中,确定出与该角色标识具有对应关系的数据权限规则;从权限规则表中,查找与该角色标识具有对应关系的数据权限规则所包含的规则内容。
可选地,权限适配模块203,通过角色权限适配器对原始SQL语句的操作类型进行适配,确定与原始SQL语句的操作类型相匹配的权限规则解析流程;采用匹配的权限规则解析流程对该角色标识对应的数据权限规则进行解析,如果解析出该角色标识在该操作类型下的操作权限,则适配成功。
可选地,权限过滤模块204,创建角色权限适配器到与该操作类型对应的权限过滤器之间的路由;
通过路由,将该角色标识对应的数据权限规则和原始SQL语句发送到相应的权限过滤器;
权限过滤器基于接收到的数据权限规则对原始SQL语句进行权限过滤。
可选地,上述装置还包括:
过滤输出模块,将完成权限过滤的原始SQL语句返回至业务程序,以使业务程序基于权限过滤后的SQL语句访问目标数据库。
可选地,权限适配模块203,如果适配失败,则向业务程序反馈“无操作权限”的提示信息。
可选地,上述装置还包括:
规则修改模块,响应于修改角色权限表和/或权限规则表的触发请求,对角色权限表和/或权限规则表进行相应修改。
本说明书实施例提供的数据权限处理装置,通过确定通过业务程序产生原始SQL语句的用户所对应的角色标识;根据角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则,角色规则库中包含多个角色标识及其对应的数据权限规则;识别原始SQL语句的操作类型,并根据该角色标识对应的数据权限规则,对该角色标识在该操作类型下的操作权限进行适配;如果适配成功,则选择与该操作类型对应的权限过滤器,依照该角色标识对应的数据权限规则对原始SQL语句进行权限过滤。由于本说明书实施例是在确定角色标识后,先匹配该角色标识对应的数据权限规则;再对该角色标识在原始SQL语句的操作类型下的操作权限进行适配后,确定具体的权限过滤操作,降低了角色标识与权限过滤操作之间的强耦合关系,从而有效解决了现有技术中数据权限的规则逻辑与业务代码耦合性强、对***的入侵性高,后期权限改动代价大的问题。
需要说明的是,本说明书中关于数据权限处理装置的实施例与本说明书中关于数据权限处理方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述对应的数据权限处理方法的实施,重复之处不再赘述。
实施例四
对应上述图2至图7描述的数据权限处理方法,基于相同的技术构思,本说明书实施例还提供一种数据权限处理设备,该设备用于执行上述的数据权限处理方法,图9为本说明书实施例提供的一种数据权限处理设备的结构示意图。
如图9所示,数据权限处理设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器301和存储器302,存储器302中可以存储有一个或一个以上存储应用程序或数据。其中,存储器302可以是短暂存储或持久存储。存储在存储器302的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括数据权限处理设备中的一系列计算机可执行指令。更进一步地,处理器301可以设置为与存储器302通信,在数据权限处理设备上执行存储器302中的一系列计算机可执行指令。数据权限处理设备还可以包括一个或一个以上电源303,一个或一个以上有线或无线网络接口304,一个或一个以上输入输出接口305,一个或一个以上键盘306等。
在一个具体的实施例中,数据权限处理设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对数据权限处理设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
确定通过业务程序产生原始SQL语句的用户所对应的角色标识;
根据所述角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则,所述角色规则库中包含多个角色标识及其对应的数据权限规则;
识别所述原始SQL语句的操作类型,并根据所述该角色标识对应的数据权限规则,对所述该角色标识在该操作类型下的操作权限进行适配;
如果适配成功,则选择与所述该操作类型对应的权限过滤器,依照所述该角色标识对应的数据权限规则对所述原始SQL语句进行权限过滤。
本说明书实施例中提供的数据权限处理设备,通过确定通过业务程序产生原始SQL语句的用户所对应的角色标识;根据角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则,角色规则库中包含多个角色标识及其对应的数据权限规则;识别原始SQL语句的操作类型,并根据该角色标识对应的数据权限规则,对该角色标识在该操作类型下的操作权限进行适配;如果适配成功,则选择与该操作类型对应的权限过滤器,依照该角色标识对应的数据权限规则对原始SQL语句进行权限过滤。由于本说明书实施例是在确定角色标识后,先匹配该角色标识对应的数据权限规则;再对该角色标识在原始SQL语句的操作类型下的操作权限进行适配后,确定具体的权限过滤操作,降低了角色标识与权限过滤操作之间的强耦合关系,从而有效解决了现有技术中数据权限的规则逻辑与业务代码耦合性强、对***的入侵性高,后期权限改动代价大的问题。
可选地,计算机可执行指令在被执行时,所述角色规则库中包含角色权限表和权限规则表,所述角色权限表用于标识所述角色标识与所述数据权限规则的对应关系,所述权限规则表用于存储所述数据权限规则的规则内容;
所述根据所述角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则包括:
从所述角色权限表中,确定出与所述该角色标识具有对应关系的数据权限规则;
从所述权限规则表中,查找与所述该角色标识具有对应关系的数据权限规则所包含的规则内容。
可选地,计算机可执行指令在被执行时,所述根据所述该角色标识对应的数据权限规则,对所述该角色标识在该操作类型下的操作权限进行适配包括:
通过角色权限适配器对所述原始SQL语句的操作类型进行适配,确定与所述原始SQL语句的操作类型相匹配的权限规则解析流程;
采用所述匹配的权限规则解析流程对所述该角色标识对应的数据权限规则进行解析,如果解析出所述该角色标识在该操作类型下的操作权限,则适配成功。
可选地,计算机可执行指令在被执行时,所述选择与所述该操作类型对应的权限过滤器,依照所述该角色标识对应的数据权限规则对所述原始SQL语句进行权限过滤包括:
创建所述角色权限适配器到与所述该操作类型对应的权限过滤器之间的路由;
通过所述路由,将所述该角色标识对应的数据权限规则和所述原始SQL语句发送到相应的所述权限过滤器;
所述权限过滤器基于接收到的所述数据权限规则对所述原始SQL语句进行权限过滤。
可选地,计算机可执行指令在被执行时,所述方法还包括:
将完成权限过滤的所述原始SQL语句返回至所述业务程序,以使所述业务程序基于权限过滤后的所述SQL语句访问目标数据库。
可选地,计算机可执行指令在被执行时,所述识别所述原始SQL语句的操作类型,并根据所述该角色标识对应的数据权限规则,对所述该角色标识在该操作类型下的操作权限进行适配之后还包括:
如果适配失败,则向所述业务程序反馈“无操作权限”的提示信息。
可选地,计算机可执行指令在被执行时,所述方法还包括:
响应于修改所述角色权限表和/或所述权限规则表的触发请求,对所述角色权限表和/或所述权限规则表进行相应修改。
本说明书实施例提供的数据权限处理设备,通过确定通过业务程序产生原始SQL语句的用户所对应的角色标识;根据角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则,角色规则库中包含多个角色标识及其对应的数据权限规则;识别原始SQL语句的操作类型,并根据该角色标识对应的数据权限规则,对该角色标识在该操作类型下的操作权限进行适配;如果适配成功,则选择与该操作类型对应的权限过滤器,依照该角色标识对应的数据权限规则对原始SQL语句进行权限过滤。由于本说明书实施例是在确定角色标识后,先匹配该角色标识对应的数据权限规则;再对该角色标识在原始SQL语句的操作类型下的操作权限进行适配后,确定具体的权限过滤操作,降低了角色标识与权限过滤操作之间的强耦合关系,从而有效解决了现有技术中数据权限的规则逻辑与业务代码耦合性强、对***的入侵性高,后期权限改动代价大的问题。
需要说明的是,本说明书中关于数据权限处理设备的实施例与本说明书中关于数据权限处理方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述对应的数据权限处理方法的实施,重复之处不再赘述。
实施例五
对应上述图2至图7描述的数据权限处理方法,基于相同的技术构思,本说明书实施例还提供一种存储介质,用于存储计算机可执行指令,一个具体的实施例中,该存储介质可以为U盘、光盘、硬盘等,该存储介质存储的计算机可执行指令在被处理器执行时,能实现以下流程:
确定通过业务程序产生原始SQL语句的用户所对应的角色标识;
根据所述角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则,所述角色规则库中包含多个角色标识及其对应的数据权限规则;
识别所述原始SQL语句的操作类型,并根据所述该角色标识对应的数据权限规则,对所述该角色标识在该操作类型下的操作权限进行适配;
如果适配成功,则选择与所述该操作类型对应的权限过滤器,依照所述该角色标识对应的数据权限规则对所述原始SQL语句进行权限过滤。
本说明书实施例中提供的存储介质所存储的计算机可执行指令在被处理器执行时,通过确定通过业务程序产生原始SQL语句的用户所对应的角色标识;根据角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则,角色规则库中包含多个角色标识及其对应的数据权限规则;识别原始SQL语句的操作类型,并根据该角色标识对应的数据权限规则,对该角色标识在该操作类型下的操作权限进行适配;如果适配成功,则选择与该操作类型对应的权限过滤器,依照该角色标识对应的数据权限规则对原始SQL语句进行权限过滤。由于本说明书实施例是在确定角色标识后,先匹配该角色标识对应的数据权限规则;再对该角色标识在原始SQL语句的操作类型下的操作权限进行适配后,确定具体的权限过滤操作,降低了角色标识与权限过滤操作之间的强耦合关系,从而有效解决了现有技术中数据权限的规则逻辑与业务代码耦合性强、对***的入侵性高,后期权限改动代价大的问题。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述角色规则库中包含角色权限表和权限规则表,所述角色权限表用于标识所述角色标识与所述数据权限规则的对应关系,所述权限规则表用于存储所述数据权限规则的规则内容;
所述根据所述角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则包括:
从所述角色权限表中,确定出与所述该角色标识具有对应关系的数据权限规则;
从所述权限规则表中,查找与所述该角色标识具有对应关系的数据权限规则所包含的规则内容。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述根据所述该角色标识对应的数据权限规则,对所述该角色标识在该操作类型下的操作权限进行适配包括:
通过角色权限适配器对所述原始SQL语句的操作类型进行适配,确定与所述原始SQL语句的操作类型相匹配的权限规则解析流程;
采用所述匹配的权限规则解析流程对所述该角色标识对应的数据权限规则进行解析,如果解析出所述该角色标识在该操作类型下的操作权限,则适配成功。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述选择与所述该操作类型对应的权限过滤器,依照所述该角色标识对应的数据权限规则对所述原始SQL语句进行权限过滤包括:
创建所述角色权限适配器到与所述该操作类型对应的权限过滤器之间的路由;
通过所述路由,将所述该角色标识对应的数据权限规则和所述原始SQL语句发送到相应的所述权限过滤器;
所述权限过滤器基于接收到的所述数据权限规则对所述原始SQL语句进行权限过滤。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述方法还包括:
将完成权限过滤的所述原始SQL语句返回至所述业务程序,以使所述业务程序基于权限过滤后的所述SQL语句访问目标数据库。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述识别所述原始SQL语句的操作类型,并根据所述该角色标识对应的数据权限规则,对所述该角色标识在该操作类型下的操作权限进行适配之后还包括:
如果适配失败,则向所述业务程序反馈“无操作权限”的提示信息。
可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述方法还包括:
响应于修改所述角色权限表和/或所述权限规则表的触发请求,对所述角色权限表和/或所述权限规则表进行相应修改。
本说明书实施例提供的存储介质所存储的计算机可执行指令在被处理器执行时,通过确定通过业务程序产生原始SQL语句的用户所对应的角色标识;根据角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则,角色规则库中包含多个角色标识及其对应的数据权限规则;识别原始SQL语句的操作类型,并根据该角色标识对应的数据权限规则,对该角色标识在该操作类型下的操作权限进行适配;如果适配成功,则选择与该操作类型对应的权限过滤器,依照该角色标识对应的数据权限规则对原始SQL语句进行权限过滤。由于本说明书实施例是在确定角色标识后,先匹配该角色标识对应的数据权限规则;再对该角色标识在原始SQL语句的操作类型下的操作权限进行适配后,确定具体的权限过滤操作,降低了角色标识与权限过滤操作之间的强耦合关系,从而有效解决了现有技术中数据权限的规则逻辑与业务代码耦合性强、对***的入侵性高,后期权限改动代价大的问题。
需要说明的是,本说明书中关于存储介质的实施例与本说明书中关于数据权限处理方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述对应的数据权限处理方法的实施,重复之处不再赘述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在20世纪30年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应地硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书实施例时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书一个或多个实施例可提供为方法、***或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书的一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本文件的实施例而已,并不用于限制本文件。对于本领域技术人员来说,本文件可以有各种更改和变化。凡在本文件的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本文件的权利要求范围之内。
Claims (10)
1.一种数据权限处理方法,包括:
确定通过业务程序产生原始SQL语句的用户所对应的角色标识;
根据所述角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则,所述角色规则库中包含多个角色标识及其对应的数据权限规则;
识别所述原始SQL语句的操作类型,并根据所述该角色标识对应的数据权限规则,对所述该角色标识在该操作类型下的操作权限进行适配;
如果适配成功,则选择与所述该操作类型对应的权限过滤器,依照所述该角色标识对应的数据权限规则对所述原始SQL语句进行权限过滤。
2.根据权利要求1所述的方法,所述角色规则库中包含角色权限表和权限规则表,所述角色权限表用于标识所述角色标识与所述数据权限规则的对应关系,所述权限规则表用于存储所述数据权限规则的规则内容;
所述根据所述角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则包括:
从所述角色权限表中,确定出与所述该角色标识具有对应关系的数据权限规则;
从所述权限规则表中,查找与所述该角色标识具有对应关系的数据权限规则所包含的规则内容。
3.根据权利要求1所述的方法,所述根据所述该角色标识对应的数据权限规则,对所述该角色标识在该操作类型下的操作权限进行适配包括:
通过角色权限适配器对所述原始SQL语句的操作类型进行适配,确定与所述原始SQL语句的操作类型相匹配的权限规则解析流程;
采用所述匹配的权限规则解析流程对所述该角色标识对应的数据权限规则进行解析,如果解析出所述该角色标识在该操作类型下的操作权限,则适配成功。
4.根据权利要求3所述的方法,所述选择与所述该操作类型对应的权限过滤器,依照所述该角色标识对应的数据权限规则对所述原始SQL语句进行权限过滤包括:
创建所述角色权限适配器到与所述该操作类型对应的权限过滤器之间的路由;
通过所述路由,将所述该角色标识对应的数据权限规则和所述原始SQL语句发送到相应的所述权限过滤器;
所述权限过滤器基于接收到的所述数据权限规则对所述原始SQL语句进行权限过滤。
5.根据权利要求1所述的方法,所述方法还包括:
将完成权限过滤的所述原始SQL语句返回至所述业务程序,以使所述业务程序基于权限过滤后的所述SQL语句访问目标数据库。
6.根据权利要求1所述的方法,所述识别所述原始SQL语句的操作类型,并根据所述该角色标识对应的数据权限规则,对所述该角色标识在该操作类型下的操作权限进行适配之后还包括:
如果适配失败,则向所述业务程序反馈“无操作权限”的提示信息。
7.根据权利要求2所述的方法,所述方法还包括:
响应于修改所述角色权限表和/或所述权限规则表的触发请求,对所述角色权限表和/或所述权限规则表进行相应修改。
8.一种数据权限处理装置,包括:
角色确定模块,确定通过业务程序产生原始SQL语句的用户所对应的角色标识;
权限匹配模块,根据所述角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则,所述角色规则库中包含多个角色标识及其对应的数据权限规则;
权限适配模块,识别所述原始SQL语句的操作类型,并根据所述该角色标识对应的数据权限规则,对所述该角色标识在该操作类型下的操作权限进行适配;
权限过滤模块,如果适配成功,则选择与所述该操作类型对应的权限过滤器,依照所述该角色标识对应的数据权限规则对所述原始SQL语句进行权限过滤。
9.一种数据权限处理设备,包括:
处理器;以及,
被安排成存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器:
确定通过业务程序产生原始SQL语句的用户所对应的角色标识;
根据所述角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则,所述角色规则库中包含多个角色标识及其对应的数据权限规则;
识别所述原始SQL语句的操作类型,并根据所述该角色标识对应的数据权限规则,对所述该角色标识在该操作类型下的操作权限进行适配;
如果适配成功,则选择与所述该操作类型对应的权限过滤器,依照所述该角色标识对应的数据权限规则对所述原始SQL语句进行权限过滤。
10.一种存储介质,用于存储计算机可执行指令,所述计算机可执行指令在被执行时实现以下流程:
确定通过业务程序产生原始SQL语句的用户所对应的角色标识;
根据所述角色标识,从预置的角色规则库中匹配该角色标识对应的数据权限规则,所述角色规则库中包含多个角色标识及其对应的数据权限规则;
识别所述原始SQL语句的操作类型,并根据所述该角色标识对应的数据权限规则,对所述该角色标识在该操作类型下的操作权限进行适配;
如果适配成功,则选择与所述该操作类型对应的权限过滤器,依照所述该角色标识对应的数据权限规则对所述原始SQL语句进行权限过滤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010266153.6A CN111400681B (zh) | 2020-04-07 | 2020-04-07 | 数据权限处理方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010266153.6A CN111400681B (zh) | 2020-04-07 | 2020-04-07 | 数据权限处理方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111400681A true CN111400681A (zh) | 2020-07-10 |
CN111400681B CN111400681B (zh) | 2023-09-12 |
Family
ID=71431468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010266153.6A Active CN111400681B (zh) | 2020-04-07 | 2020-04-07 | 数据权限处理方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400681B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112347469A (zh) * | 2020-11-10 | 2021-02-09 | 浙江百应科技有限公司 | 一种低侵入的数据权限处理方法、***及其电子设备 |
CN112528249A (zh) * | 2020-12-18 | 2021-03-19 | 杭州立思辰安科科技有限公司 | 一种适用于网络安全管理平台的权限管理方法和装置 |
CN113765673A (zh) * | 2021-08-31 | 2021-12-07 | 中国建设银行股份有限公司 | 一种访问控制方法和装置 |
CN115017175A (zh) * | 2022-05-12 | 2022-09-06 | 浪潮卓数大数据产业发展有限公司 | 一种面向教学的多用户数据处理方法和*** |
CN115659406A (zh) * | 2022-12-09 | 2023-01-31 | 平安银行股份有限公司 | 一种数据访问方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090064272A1 (en) * | 2007-08-31 | 2009-03-05 | International Business Machines Corporation | Database authorization rules and component logic authorization rules aggregation |
CN102968599A (zh) * | 2012-10-25 | 2013-03-13 | 北京邮电大学 | 基于资源发布者自定义的访问控制***及方法 |
CN104766023A (zh) * | 2015-02-02 | 2015-07-08 | 苏州全维软件科技有限公司 | 基于oracle数据库的用户管理方法 |
US20150339306A1 (en) * | 2014-05-21 | 2015-11-26 | International Business Machines Corporation | Revising policy statements using hyperlinks |
CN106250782A (zh) * | 2016-08-12 | 2016-12-21 | 天津西瑞尔信息工程有限公司 | 一种基于sql语句解析的数据权限控制方法及装置 |
CN106570406A (zh) * | 2016-10-27 | 2017-04-19 | 深圳前海微众银行股份有限公司 | 数据级权限配置方法及装置 |
CN107808103A (zh) * | 2017-11-13 | 2018-03-16 | 北京中电普华信息技术有限公司 | 一种数据权限的控制方法及控制装置 |
CN108509807A (zh) * | 2018-04-13 | 2018-09-07 | 南京新贝金服科技有限公司 | 一种基于角色的列表数据权限控制***和方法 |
US10089480B1 (en) * | 2017-08-09 | 2018-10-02 | Fmr Llc | Access control governance using mapped vector spaces |
CN109815284A (zh) * | 2019-01-04 | 2019-05-28 | 平安科技(深圳)有限公司 | 一种数据处理的方法和装置 |
CN110895537A (zh) * | 2019-11-29 | 2020-03-20 | 中国银行股份有限公司 | 自由查询权限控制的方法及装置 |
-
2020
- 2020-04-07 CN CN202010266153.6A patent/CN111400681B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090064272A1 (en) * | 2007-08-31 | 2009-03-05 | International Business Machines Corporation | Database authorization rules and component logic authorization rules aggregation |
CN102968599A (zh) * | 2012-10-25 | 2013-03-13 | 北京邮电大学 | 基于资源发布者自定义的访问控制***及方法 |
US20150339306A1 (en) * | 2014-05-21 | 2015-11-26 | International Business Machines Corporation | Revising policy statements using hyperlinks |
CN104766023A (zh) * | 2015-02-02 | 2015-07-08 | 苏州全维软件科技有限公司 | 基于oracle数据库的用户管理方法 |
CN106250782A (zh) * | 2016-08-12 | 2016-12-21 | 天津西瑞尔信息工程有限公司 | 一种基于sql语句解析的数据权限控制方法及装置 |
CN106570406A (zh) * | 2016-10-27 | 2017-04-19 | 深圳前海微众银行股份有限公司 | 数据级权限配置方法及装置 |
US10089480B1 (en) * | 2017-08-09 | 2018-10-02 | Fmr Llc | Access control governance using mapped vector spaces |
CN107808103A (zh) * | 2017-11-13 | 2018-03-16 | 北京中电普华信息技术有限公司 | 一种数据权限的控制方法及控制装置 |
CN108509807A (zh) * | 2018-04-13 | 2018-09-07 | 南京新贝金服科技有限公司 | 一种基于角色的列表数据权限控制***和方法 |
CN109815284A (zh) * | 2019-01-04 | 2019-05-28 | 平安科技(深圳)有限公司 | 一种数据处理的方法和装置 |
CN110895537A (zh) * | 2019-11-29 | 2020-03-20 | 中国银行股份有限公司 | 自由查询权限控制的方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112347469A (zh) * | 2020-11-10 | 2021-02-09 | 浙江百应科技有限公司 | 一种低侵入的数据权限处理方法、***及其电子设备 |
CN112528249A (zh) * | 2020-12-18 | 2021-03-19 | 杭州立思辰安科科技有限公司 | 一种适用于网络安全管理平台的权限管理方法和装置 |
CN113765673A (zh) * | 2021-08-31 | 2021-12-07 | 中国建设银行股份有限公司 | 一种访问控制方法和装置 |
CN115017175A (zh) * | 2022-05-12 | 2022-09-06 | 浪潮卓数大数据产业发展有限公司 | 一种面向教学的多用户数据处理方法和*** |
CN115659406A (zh) * | 2022-12-09 | 2023-01-31 | 平安银行股份有限公司 | 一种数据访问方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111400681B (zh) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111400681A (zh) | 数据权限处理方法、装置及设备 | |
CN109614823B (zh) | 一种数据的处理方法、装置及设备 | |
CN107992307B (zh) | 一种函数编译方法及装置 | |
CN109032825B (zh) | 一种故障注入方法、装置及设备 | |
CN110223682B (zh) | 一种语音指令仲裁方法和装置 | |
CN110569428A (zh) | 一种推荐模型的构建方法、装置及设备 | |
CN111144132B (zh) | 一种语义识别方法及装置 | |
CN111124480A (zh) | 应用程序包的生成方法、装置、电子设备及存储介质 | |
CN108616361B (zh) | 一种识别设备唯一性的方法及装置 | |
CN110019444B (zh) | 一种操作请求处理方法、装置、设备及*** | |
CN113408254A (zh) | 一种页面表单信息填写方法、装置、设备和可读介质 | |
CN113672919A (zh) | 基于小程序动静态分析的风险检测方法、装置以及设备 | |
CN110046100B (zh) | 一种分组测试的方法、电子设备及介质 | |
CN106156050B (zh) | 一种数据处理方法及装置 | |
CN111737304B (zh) | 一种区块链数据的处理方法、装置及设备 | |
CN116432185B (zh) | 一种异常检测方法、装置、可读存储介质及电子设备 | |
CN109409037B (zh) | 一种数据混淆规则的生成方法、装置及设备 | |
CN110941443A (zh) | 修改sdk中文件名的方法、装置及电子设备 | |
CN115878860A (zh) | 一种菜单的生成方法、装置、服务器设备及介质 | |
CN112181798B (zh) | 数据记录方法及装置 | |
CN111488569B (zh) | 一种权限确定、管理方法、装置、设备及介质 | |
CN114281688A (zh) | 一种***或低码的自动化用例管理方法和装置 | |
CN114661826A (zh) | 基于区块链的数据处理方法、装置及设备 | |
CN111324778B (zh) | 数据、业务处理方法、装置及电子设备 | |
CN115827589A (zh) | 一种权限验证方法、装置、电子设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |