CN111400170B - 一种数据权限测试方法及装置 - Google Patents
一种数据权限测试方法及装置 Download PDFInfo
- Publication number
- CN111400170B CN111400170B CN202010131924.0A CN202010131924A CN111400170B CN 111400170 B CN111400170 B CN 111400170B CN 202010131924 A CN202010131924 A CN 202010131924A CN 111400170 B CN111400170 B CN 111400170B
- Authority
- CN
- China
- Prior art keywords
- authority
- information
- role
- role information
- data
- 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.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 65
- 230000002159 abnormal effect Effects 0.000 claims description 91
- 238000000034 method Methods 0.000 claims description 33
- 238000011084 recovery Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 10
- 230000003993 interaction Effects 0.000 claims description 3
- 238000012827 research and development Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 7
- 238000000605 extraction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- 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/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例适用于研发管理中的测试,公开了一种数据权限测试方法,包括:获取数据库的产品文档及该产品文档关联的权限配置文件,产品文档包括角色信息集合及权限信息集合;根据权限配置文件确定角色信息集合与权限信息集合的关联关系及权限信息集合中各个权限信息的层次关系;生成每个角色信息的角色权限关系树;对比每个角色信息的角色权限关系树与该角色信息在数据库中关联的权限集合,对每个角色信息在数据库中的角色权限配置结果进行测试,并输出测试结果。采用本申请,可以将杂乱的权限信息有序化,从而提高对权限的测试效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据权限测试方法及装置。
背景技术
随着互联网的发展,大数据+人工智能的使用也越为广泛,在使用大数据技术时进行大数据测试就极为重要,而大数据测试需要对海量数据的准确同步、存储及容灾等方面进行测试保障。同时,对于应用程序(Application,APP)测试,尤其是数据类APP,除了需要对海量数据的同步准确性进行测试,还需要重视对海量数据的数据权限测试。例如,对于同一APP场景或页面,由于对于该APP来说,海量数据中可能会存在权限数据只有团队领导成员或VIP用户或开发人员等才有查看权限,即不同用户所能获取或查阅到的数据是不尽相同的。
目前,市场上较为常见的数据类APP都存在着权限数据包含大量图表数据的情况,在这种情况下,对于数据类APP中存储的海量数据的测试,没有较为成熟的大数据权限测试方法,使得大数据测试效率较低。
发明内容
基于此,本申请提供了一种数据权限测试方法及装置,以期提高对数据权限的测试效率。
本申请实施例第一方面提供了一种数据权限测试方法,包括:
获取数据库的产品文档,所述产品文档包括角色信息集合及权限信息集合,所述角色信息集合包括多个角色信息,所述角色信息用于指示一类用户,所述权限信息集合包括多个权限信息,每个权限信息用于指示对所述数据库中的一类数据的权限;
获取与所述产品文档相关联的权限配置文件,根据所述权限配置文件确定所述角色信息集合与所述权限信息集合的关联关系,以及所述多个权限信息间的层次关系;
根据所述角色信息集合中每个角色信息确定角色节点,根据所述权限信息集合中每个权限信息确定权限节点;
基于所述角色信息集合与所述权限信息集合的关联关系,以及所述多个权限信息间的层次关系,生成每个角色信息对应的角色权限关系树,所述角色权限关系树由对应角色节点以及与该角色节点关联的多个权限节点组成;
基于目标角色信息对所述数据库的多个权限数据表进行联合查询,获取所述多个权限数据表中与所述目标角色信息相关联的权限集合,所述多个权限数据表中每个权限数据表包括多个业务数据名称,每个业务数据名称指示所述数据库中的一类数据,所述权限集合是由所述数据库中与所述目标角色信息相关联的业务数据名称组成,所述权限集合用于指示所述目标角色信息具有对所述数据库中所述与所述目标角色信息相关联的业务数据名称对应的至少一类数据的访问权限;
若所述角色信息集合中的各个角色信息对应的角色权限关系树中包含的权限节点名称与所述对应角色信息的权限集合中的业务数据名称均一致,则输出所述数据库的角色权限配置成功的测试结果。
其中,所述权限配置文件包括至少一段程序代码,所述根据所述权限配置文件确定所述角色信息集合与所述权限信息集合的关联关系,以及所述多个权限信息间的层次关系,包括:
获取所述权限配置文件中的所述至少一段程序代码,并解析所述至少一段程序代码中的每一行代码语句;
根据所述每一行代码语句间的调用关系及执行顺序,确定所述角色信息集合中每个角色信息分别与所述权限信息集合中的各个权限信息间的关联关系,以及所述多个权限信息中的所述各个权限信息间的层次关系。
其中,所述基于所述角色信息集合与所述权限信息集合的关联关系,以及所述多个权限信息间的层次关系,生成每个角色信息对应的角色权限关系树,包括:
将所述角色信息中第i个角色信息对应的第i个角色节点作为第i个角色权限关系树的根节点,i为正整数,i小于或等于根据所述角色信息集合中包括的角色信息的数量;
基于所述角色信息集合与所述权限信息集合的关联关系,从所述权限节点中获取与所述第i个角色节点相关联的第一权限节点;
基于所述权限信息集合中各个权限信息间的层次关系,确定所述第一权限节点间的包含关系;
根据所述第一权限节点间的包含关系,建立所述第一权限节点间的父子关系及兄弟关系,基于所述父子关系及所述兄弟关系将所述第一权限节点作为所述第i个角色权限关系树中的子节点;
直至得到所述角色信息集合中每个角色信息对应的角色权限关系树。
其中,所述获取所述多个权限数据表中与所述目标角色信息相关联的权限集合之后,还包括:
获取所述目标角色信息对应的角色权限关系树;
从所述目标角色信息对应的角色权限关系树中获取目标权限节点;
对比所述目标权限节点名称与所述目标角色信息的权限集合中的业务数据名称。
其中,所述方法之后,还包括:
若所述角色信息集合中的各个角色信息对应的角色权限关系树中包含的权限节点名称与所述对应角色信息的权限集合中的业务数据名称不同,则获取异常权限信息以及与所述异常权限信息关联的异常角色信息,所述异常权限信息为所述角色信息集合中的各个角色信息对应的角色权限关系树中包含的权限节点名称与所述对应角色信息的权限集合中的业务数据名称间不同的数据;
若所述异常权限信息属于所述权限集合而不属于所述权限节点,则向权限管理终端发送权限回收请求,以使所述权限管理终端回收所述异常角色信息对所述异常权限信息对应的数据的权限,所述权限回收请求包括所述异常权限信息以及所述异常角色信息;
若所述异常权限信息属于所述权限节点而不属于所述权限集合,则向所述权限管理终端发送权限下发请求,以使所述权限管理终端为所述异常角色信息增加所述异常权限信息对应的数据的权限,所述权限下发请求包括所述异常权限信息以及所述异常角色信息。
其中,所述方法之后还包括:
接收所述权限管理终端发送的权限调整消息,从所述多个权限数据表中获取与所述异常角色信息关联的权限集合;
若所述与所述异常角色信息关联的权限集合中的业务数据名称与所述异常角色信息的角色权限关系树中的权限节点名称均一致,则输出所述数据库中针对所述异常角色信息的权限调整成功的结果。
其中,所述根据所述每一行代码语句间的调用关系及执行顺序,确定所述角色信息集合中每个角色信息分别与所述权限信息集合中的各个权限信息间的关联关系,以及所述多个权限信息中的所述各个权限信息间的层次关系,包括:
若所述代码语句为条件语句,则确定所述条件语句中包括的角色信息与权限信息间相关联;
若所述代码语句为执行语句,则根据所述执行语句的执行顺序确定所述执行语句中包括的权限信息间的层次关系。
本申请实施例第二方面提供了一种数据权限测试装置,包括:
第一获取模块,用于获取数据库的产品文档,所述产品文档包括角色信息集合及权限信息集合,所述角色信息集合包括多个角色信息,所述角色信息用于指示一类用户,所述权限信息集合包括多个权限信息,每个权限信息用于指示对所述数据库中的一类数据的权限;
第二获取模块,用于获取与所述产品文档相关联的权限配置文件,根据所述权限配置文件确定所述角色信息集合与所述权限信息集合的关联关系,以及所述多个权限信息间的层次关系;
确定模块,用于根据所述角色信息集合中每个角色信息确定角色节点,根据所述权限信息集合中每个权限信息确定权限节点;
生成模块,用于基于所述角色信息集合与所述权限信息集合的关联关系,以及所述多个权限信息间的层次关系,生成每个角色信息对应的角色权限关系树,所述角色权限关系树由对应角色节点以及与该角色节点关联的多个权限节点组成;
第三获取模块,用于基于目标角色信息对所述数据库的多个权限数据表进行联合查询,获取所述多个权限数据表中与所述目标角色信息相关联的权限集合,所述多个权限数据表中每个权限数据表包括多个业务数据名称,每个业务数据名称指示所述数据库中的一类数据,所述权限集合是由所述数据库中与所述目标角色信息相关联的业务数据名称组成,所述权限集合用于指示所述目标角色信息具有对所述数据库中所述与所述目标角色信息相关联的业务数据名称对应的至少一类数据的访问权限;
显示模块,用于若所述角色信息集合中的各个角色信息对应的角色权限关系树中包含的权限节点名称与所述对应角色信息的权限集合中的业务数据名称均一致,则输出所述数据库的角色权限配置成功的测试结果。
其中,所述第二获取模块,具体用于:
获取所述权限配置文件中的所述至少一段程序代码,并解析所述至少一段程序代码中的每一行代码语句;
根据所述每一行代码语句间的调用关系及执行顺序,确定所述角色信息集合中每个角色信息分别与所述权限信息集合中的各个权限信息间的关联关系,以及所述多个权限信息中的所述各个权限信息间的层次关系。
其中,所述生成模块,具体用于:
将所述角色信息中第i个角色信息对应的第i个角色节点作为第i个角色权限关系树的根节点,i为正整数,i小于或等于根据所述角色信息集合中包括的角色信息的数量;
基于所述角色信息集合与所述权限信息集合的关联关系,从所述权限节点中获取与所述第i个角色节点相关联的第一权限节点;
基于所述权限信息集合中各个权限信息间的层次关系,确定所述第一权限节点间的包含关系;
根据所述第一权限节点间的包含关系,建立所述第一权限节点间的父子关系及兄弟关系,基于所述父子关系及所述兄弟关系将所述第一权限节点作为所述第i个角色权限关系树中的子节点;
直至得到所述角色信息集合中每个角色信息对应的角色权限关系树。
其中,所述装置,还包括:
第四获取模块,用于获取所述目标角色信息对应的角色权限关系树;
所述第四获取模块,还用于从所述目标角色信息对应的角色权限关系树中获取目标权限节点;
对比模块,用于对比所述目标权限节点名称与所述目标角色信息的权限集合中的业务数据名称。
其中,所述装置,还包括:
第五获取模块,用于若所述角色信息集合中的各个角色信息对应的角色权限关系树中包含的权限节点名称与所述对应角色信息的权限集合中的业务数据名称不同,则获取异常权限信息以及与所述异常权限信息关联的异常角色信息,所述异常权限信息为所述角色信息集合中的各个角色信息对应的角色权限关系树中包含的权限节点名称与所述对应角色信息的权限集合中的业务数据名称间不同的数据;
发送模块,用于若所述异常权限信息属于所述权限集合而不属于所述权限节点,则向权限管理终端发送权限回收请求,以使所述权限管理终端回收所述异常角色信息对所述异常权限信息对应的数据的权限,所述权限回收请求包括所述异常权限信息以及所述异常角色信息;
所述发送模块,还用于若所述异常权限信息属于所述权限节点而不属于所述权限集合,则向所述权限管理终端发送权限下发请求,以使所述权限管理终端为所述异常角色信息增加所述异常权限信息对应的数据的权限,所述权限下发请求包括所述异常权限信息以及所述异常角色信息。
其中,所述装置还包括:
接收模块,用于接收所述权限管理终端发送的权限调整消息;
所述第三获取模块,还用于从所述多个权限数据表中获取与所述异常角色信息关联的权限集合;
所述显示模块,还用于若所述与所述异常角色信息关联的权限集合中的业务数据名称与所述异常角色信息的角色权限关系树中的权限节点名称均一致,则输出所述数据库中针对所述异常角色信息的权限调整成功的结果。
其中,所述第二获取模块,具体用于:
若所述代码语句为条件语句,则确定所述条件语句中包括的角色信息与权限信息间相关联;
若所述代码语句为执行语句,则根据所述执行语句的执行顺序确定所述执行语句中包括的权限信息间的层次关系。
本申请实施例第三方面提供了一种电子设备,包括处理器、存储器、输入输出接口;
所述处理器分别与所述存储器和所述输入输出接口相连,其中,所述输入输出接口用于进行数据交互,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如本申请实施例中第一方面所述的数据权限测试方法。
实施本申请实施例,将具有如下有益效果:
本申请实施例通过获取数据库的产品文档,该产品文档包括角色信息集合及权限信息集合,角色信息集合中包括的各个角色信息分别指示一类用户,权限信息集合中各个权限信息分别用于指示对数据库中的一类数据的权限;获取与产品文档相关联的权限配置文件,根据该权限配置文件确定角色信息集合与权限信息集合的关联关系,以及多个权限信息间的层次关系,基于该关联关系及层次关系,生成每个角色信息的角色权限关系树;对数据库中的多个权限数据表进行联合查询,以得到每个角色信息在数据库中关联的权限集合;将每个角色信息的角色权限关系树中的各个节点与该角色信息的权限集合进行对比,以对该数据库的角色权限配置进行测试,并输出该测试结果,实现了对用户具有的数据的操作权限的测试。本申请通过对产品文档中的角色信息和权限信息进行整理得到树形结构,该树形结构可以体现角色信息与权限信息间的关联关系及各个权限信息间的层次关系等,将杂乱的数据权限信息有序化,便于数据的提取和比较,从而提高对数据权限的测试效率。同时对数据库中的多个权限数据表进行联合查询,可以提高对数据库的查询效率,进而提高对权限的测试效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1a是本申请实施例提供的一种数据权限测试架构图;
图1b是本申请实施例提供的一种角色权限关系树示意图;
图2是本申请实施例提供的一种数据权限测试方法流程示意图;
图3是本申请实施例提供的一种角色权限关系树实例示意图;
图4是本申请实施例提供的一种数据权限测试装置示意图;
图5是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1a,图1a是本申请实施例提供的一种数据权限测试架构图。如图1a所示,服务器103获取数据库105对应的产品文档101,该产品文档101中包括角色信息集合和权限信息集合,该角色信息集合中包括多个角色信息,每个角色信息指示一类用户,该权限信息集合中包括多个权限信息,每个权限信息指示对数据库105中的一类数据的权限。服务器103获取与该产品文档101相关联的权限配置文件102,根据该产品文档101与权限配置文件102,确定角色信息集合与权限信息集合间的关联关系,以及各个权限信息间的层次关系,以生成每个角色信息对应的角色权限关系树104。同时,该服务器103对数据库105的多个权限数据表106进行联合查询,获取到每个角色信息相关联的权限集合107,将每个角色信息的角色权限关系树104与该角色信息的权限集合107进行对比,以实现对数据库中的角色权限配置情况的测试,并输出该测试结果。其中,权限信息可以认为是一类数据的相关说明,当存在一个角色与该权限信息关联,则认为该角色具有该权限信息所指示的一类数据的权限。
举例来说,当存在权限信息集合包括数据1、数据2及数据3,角色信息结合中包括角色1及角色2,根据权限配置文件102确定数据1包括数据2,角色1与数据1、数据2及数据3相关联,角色2与数据3相关联,根据上述关联关系及层次关系,生成角色1的角色权限关系树“角色1—>数据1—>数据2,角色1—>数据3组成”及角色2的角色权限关系树“角色2—>数据3”,从数据库105的多个数据权限表106中查询角色1关联的权限集合及角色2关联的权限集合,对比角色1的角色权限树与权限集合,以及角色2的角色权限树与权限集合,得到对该数据库105中的角色权限配置情况的测试结果,并输出该测试结果。其中,该角色1的角色权限关系树如图1b中所示的角色权限关系树108所示,该角色2的角色权限关系树如图1b中所示的角色权限关系树109所示。
进一步地,请参见图2,是本申请实施例提供的一种数据权限测试方法流程示意图。具体的,在任一数据类应用程序中包含的所有数据,对于不同角色来说,可以进行操作的数据不尽相同,本申请是基于对不同角色具有的数据权限进行测试,具体如图2所示,上述方法包括如下步骤:
步骤S201,获取数据库的产品文档。
具体的,获取数据库的产品文档,该产品文档包括角色信息集合及权限信息集合,该角色信息集合包括多个角色信息,每个角色信息用于指示一类用户,该权限信息集合包括多个权限信息,每个权限信息用于指示对上述数据库中的一类数据的权限。其中,在需要对数据库中存储数据权限进行测试时,获取该数据库的产品文档,该产品文档中包括角色信息集合及权限信息集合,角色信息集合包括多个角色信息,每个角色信息在数据库中有对应的存储记录,并对应数据库中记录的一类数据。其中,该产品文档是用于对应用程序中所包含的业务数据及角色信息(该业务数据用于表示权限信息),可以认为是该应用程序的一个需求分析,指示该应用程序所需实现的功能,因此,该产品文档中包括的角色信息集合中的各个角色信息及权限信息集合中的各个权限信息可能是无序的,不能体现角色信息集合与权限信息集合间的关联性。可选的,该产品文档中包括各个权限信息间的层次关系,如一个权限信息属于另一个权限信息这种包含关系。
其中,角色信息时基于该角色信息所具有的权限进行划分的,可以认为每个角色信息所指示的各个用户具有相同的权限,即可以操作的数据是相同的。举例来说,假定数据类APP是用于展示文本数据,对于该数据类APP中的文本数据的操作权限是基于每个用户在该数据类APP中的身份定位所确定的,则获取到的产品文档中角色信息集合可以包括“游客、普通用户、短期重要(Very Important Person,VIP用户)、终身VIP用户及APP管理员等”,假定获取到的产品文档中权限信息集合包括“资源数据、功能数据、资源1、渠道1、业务1、渠道2、资源2、渠道3、业务2及业务3等”。可选的,若该产品文档中包括各个权限信息间的层次关系“资源数据—>资源1—>渠道1—>业务1,资源数据—>资源1—>渠道2,资源数据—>资源2—>渠道3—>业务2,资源数据—>资源2—>渠道3—>业务3”等。
步骤S202,获取与产品文档相关联的权限配置文件。
具体的,获取与上述产品文档相关联的权限配置文件,根据该权限配置文件确定上述角色信息集合与权限信息集合的关联关系,以及多个权限信息间的层次关系。可选的,若上述产品文档中包括各个权限信息间的层次关系,则只需要根据该权限配置文件确定上述角色信息集合中每个角色信息分别与权限信息集合中的各个权限信息间的关联关系。其中,该权限配置文件为至少一段程序代码,该至少一段程序代码包括多行代码语句。具体的,获取权限配置文件中的至少一段程序代码,并解析至少一段程序代码中的每一行代码语句;根据每一行代码语句间的调用关系及执行顺序(即代码所实现的逻辑关系),确定角色信息集合中每个角色信息分别与权限信息集合中的各个权限信息间的关联关系,以及多个权限信息中的各个权限信息间的层次关系。其中,确定每个角色信息在权限配置文件中对应的代码数据及每个权限信息在权限配置文件中对应的代码数据,通过解析各个角色信息对应的代码数据与各个权限信息对应的代码数据在权限配置文件中的位置,确定每个角色信息分别与各个权限信息间的关联关系,及各个权限信息间的层次关系。
其中,若代码语句为条件语句,则确定该条件语句中包括的角色信息与权限信息间相关联;若代码语句为执行语句,则根据执行语句的执行顺序确定该执行语句中包括的权限信息间的层次关系;若代码语句为函数调用,则根据该代码语句及调用的函数中包含的角色信息与权限信息间的调用关系,确定角色信息与权限信息间的关联关系或各个权限信息间的层次关系等等。可选的,若产品文档中包括权限信息集合中各个权限信息间的层次关系,则只需要根据代码语句的调用关系及执行顺序确定各个角色信息分别与权限信息集合中每个权限信息间的关联关系即可。
举例来说,若代码语句为条件语句,即if语句、where语句或switch语句等,可以获取该条件语句中的条件及满足该条件时所执行的语句,则该条件中包含的角色信息或权限信息与满足该条件时所执行的语句中包含的角色信息或权限信息间相关联。例如,存在一个条件语句,此处以伪代码形式进行表示,该条件语句为“if(角色1)printf数据1.数据2and数据3”,则确定角色1与数据1、数据2及数据间存在关联关系,数据1包括数据2。
通过对权限配置文件所实现的逻辑关系进行解析,从而得到产品文档中角色信息集合与权限信息集合间的关联关系,以及各个权限信息间的层次关系。
举例来说,在上述步骤S201中的例子基础上,得到角色信息集合与权限信息集合间的关联关系“APP管理员”与所有权限信息均关联,“终身VIP用户”与“资源数据、资源1、渠道1、业务1、渠道2、资源2、渠道3、业务2及功能数据”相关联,“短期VIP用户”与“资源数据、资源1、渠道1、业务1、渠道2、资源2、渠道3及业务2”相关联,“普通用户”与“资源数据、资源1、渠道1、业务1及渠道2”相关联,“游客”与“资源数据、资源1、渠道1、业务1”相关联。
步骤S203,根据产品文档及权限配置文件生成角色权限关系树。
具体的,根据产品文档及权限配置文件生成角色权限关系树。根据角色信息集合中每个角色信息确定角色节点,根据权限信息集合中每个权限信息确定权限节点,换句话说,获取每个角色信息中的角色名称,将该角色名称作为对应角色信息的角色节点,获取每个权限信息中的权限名称,将该权限名称作为对应权限信息的权限节点,从而得到每个角色信息的角色节点以及每个权限信息的权限节点;基于角色信息集合与权限信息集合的关联关系,以及多个权限信息间的层次关系,生成每个角色信息对应的角色权限关系树,每个角色权限关系树由对应角色节点以及与该角色节点关联的多个权限节点组成。
具体的,将角色信息中第i个角色信息对应的第i个角色节点作为第i个角色权限关系树的根节点,i为正整数,i小于或等于根据角色信息集合中包括的角色信息的数量;基于角色信息集合与权限信息集合的关联关系,从权限节点中获取与第i个角色节点相关联的第一权限节点;基于权限信息集合中各个权限信息间的层次关系,确定第一权限节点间的包含关系;根据第一权限节点间的包含关系,建立第一权限节点间的父子关系及兄弟关系,基于上述父子关系及兄弟关系将第一权限节点作为第i个角色权限关系树中的子节点;直至得到角色信息集合中每个角色信息对应的角色权限关系树。
举例来说,基于上述步骤S202所示的例子,根据角色信息集合中每个角色信息分别与权限信息集合中各个权限信息间的关联关系以及各个权限信息间的层次关系,生成每个角色信息的角色权限关系树,该角色权限关系树可以参见图3所示。该图3中包括APP管理员的角色权限关系树301、终身VIP用户的角色权限关系树302、短期VIP用户的角色权限关系树303、普通用户的角色权限关系树304及游客的的角色权限关系树305。其中,该APP管理员的角色权限关系树301是以APP管理员作为根节点,用于表示该角色权限关系树301中的角色节点;以APP管理员为父节点,资源数据及功能数据均为该APP管理员这一用户节点的子节点;以资源数据这一权限节点为父节点,资源1及资源2均为该资源数据这一权限节点的子节点;以资源1为父节点,渠道1及渠道2均为资源1这一权限节点的子节点;以渠道1为父节点,业务1为渠道1这一权限节点的子节点;以资源2为父节点,渠道3为资源2这一权限节点的子节点;以渠道3为父节点,业务2及业务3均为渠道3这一权限节点的子节点。同理,终身VIP用户的角色权限关系树302以终身VIP用户这一用户节点作为树的根节点,包括“终身VIP用户—>资源数据—>资源1—>渠道1—>业务1、终身VIP用户—>资源数据—>资源1—>渠道2、终身VIP用户—>资源数据—>资源2—>渠道3—>业务2以及终身VIP用户—>功能数据”这些分支;短期VIP用户的角色权限关系树303以短期VIP用户这一用户节点作为树的根节点,包括“短期VIP用户—>资源数据—>资源1—>渠道1—>业务1、短期VIP用户—>资源数据—>资源1—>渠道2以及短期VIP用户—>资源数据—>资源2—>渠道3—>业务2”这些分支;普通用户的角色权限关系树304以普通用户这一用户节点作为树的根节点,包括“普通用户—>资源数据—>资源1—>渠道1—>业务1以及普通用户—>资源数据—>资源1—>渠道2”这些分支;游客的角色权限关系树305以游客这一用户节点作为树的根节点,包括“游客—>资源数据—>资源1—>渠道1—>业务1”这些分支。
步骤S204,获取数据库中每个角色信息的权限集合,与该角色信息的角色权限关系树进行对比,得到测试结果。
具体的,基于目标角色信息对数据库的多个权限数据表进行联合查询,获取多个权限数据表中与目标角色信息相关联的权限集合,多个权限数据表中每个权限数据表包括多个业务数据名称,每个业务数据名称指示数据库中的一类数据,权限集合是由数据库中与目标角色信息相关联的业务数据名称组成,权限集合用于指示目标角色信息具有对数据库中所述与目标角色信息相关联的业务数据名称对应的至少一类数据的访问权限,并获取该目标角色信息的角色权限关系树,将该目标角色信息的权限集合与该目标角色信息的角色权限关系树进行对比,得到测试结果。其中,该目标角色信息为产品文档中的角色信息集合中的任意一个角色信息。其中,获取目标角色信息对应的角色权限关系树;从目标角色信息对应的角色权限关系树中获取目标权限节点;对比目标权限节点名称与目标角色信息的权限集合中的业务数据名称,得到测试结果。
若角色信息集合中的各个角色信息对应的角色权限关系树中包含的权限节点名称与对应角色信息的权限集合中的业务数据名称均一致,则输出数据库的角色权限配置成功的测试结果。
若角色信息集合中的各个角色信息对应的角色权限关系树中包含的权限节点名称与对应角色信息的权限集合中的业务数据名称不同,则获取异常权限信息以及与异常权限信息关联的异常角色信息,异常权限信息为角色信息集合中的各个角色信息对应的角色权限关系树中包含的权限节点名称与所述对应角色信息的权限集合中的业务数据名称间不同的数据。
其中,若异常权限信息属于权限集合而不属于权限节点,则向权限管理终端发送权限回收请求,以使权限管理终端回收异常角色信息对异常权限信息对应的数据的权限,该权限回收请求包括异常权限信息以及异常角色信息;若异常权限信息属于权限节点而不属于权限集合,则向权限管理终端发送权限下发请求,以使权限管理终端为异常角色信息增加异常权限信息对应的数据的权限,权限下发请求包括异常权限信息以及异常角色信息。
可选的,在向权限管理终端发送权限回收请求或权限下发请求后,接收该权限管理终端发送的权限调整消息,从多个权限数据表中获取与异常角色信息关联的权限集合,与该异常角色信息的角色权限关系树进行对比。若与异常角色信息关联的权限集合中的业务数据名称与异常角色信息的角色权限关系树中的权限节点名称均一致,则输出数据库中针对异常角色信息的权限调整成功的结果。
可选的,在获取任一角色信息的权限集合时,可以基于对多个权限数据表进行联合查询时的嵌套关系确定联合查询后得到的多个业务数据名称间的包含关系,基于该包含关系和多个业务数据名称得到权限集合,在对比角色信息的权限集合及该角色信息的角色权限关系树时,对比角色权限关系树中包含的权限节点名称与对应角色信息的权限集合中的业务数据名称,确定数据库中记录的与该角色信息相关联的业务数据的准确性,并对比该权限集合中各个业务数据的包含关系及对应角色信息的角色权限关系树中的各个权限节点间的兄弟关系和父子关系,只有当数据和权限信息间的关系均相同时,认为该数据库的角色权限配置成功。例如,对多个权限数据表进行联合查询,假定该多个权限数据表中是将角色信息与该角色信息可以操作的最小业务数据进行关联存储,该最小业务数用于指示该角色信息可以操作该最小业务数据所包括的所有业务数据,若对角色1进行查询,该查询语句的伪代码为“select业务数据1from表1where关联1=(select业务数据2from表2where关联2=(select业务数据3from表3where关联3=(…(select业务数据n from表n where关联n=角色1))))”,则从该查询语句的伪代码中括号由内到外的每个select语句所查询出的结果处于被包含关系,即业务数据n属于业务数据(n-1)一直到业务数据1。其中,上述多个权限数据表中的关联存储方式及与每个角色信息所关联的各个业务数据间的包含关系的确定方法是一种可选的方法,并不限制其他的可以实现角色与业务数据关联的存储方式,或其他可以实现确定各个业务数据间的包含关系的确定方法。
其中,本申请中所提及的权限信息所包含的权限名称本质上是业务数据的名称,当该权限信息与角色信息关联时,表示该角色信息具有对该权限信息所指示的业务数据的操作权限。
本申请实施例通过获取数据库的产品文档,该产品文档包括角色信息集合及权限信息集合,角色信息集合中包括的各个角色信息分别指示一类用户,权限信息集合中各个权限信息分别用于指示对数据库中的一类数据的权限;获取与产品文档相关联的权限配置文件,根据该权限配置文件确定角色信息集合与权限信息集合的关联关系,以及多个权限信息间的层次关系,基于该关联关系及层次关系,生成每个角色信息的角色权限关系树;对数据库中的多个权限数据表进行联合查询,以得到每个角色信息在数据库中关联的权限集合;将每个角色信息的角色权限关系树中的各个节点与该角色信息的权限集合进行对比,以对该数据库的角色权限配置进行测试,并输出该测试结果,实现了对用户具有的数据的操作权限的测试。本申请通过对产品文档中的角色信息和权限信息进行整理得到树形结构,该树形结构可以体现角色信息与权限信息间的关联关系及各个权限信息间的层次关系等,将杂乱的数据权限信息有序化,便于数据的提取和比较,从而提高对数据权限的测试效率。同时对数据库中的多个权限数据表进行联合查询,可以提高对数据库的查询效率,进而提高对权限的测试效率。
进一步地,参见图4,图4是本申请实施例提供的一种数据权限测试装置示意图。如图4所示,该数据权限测试装置可以用于上述图2所对应实施例中的电子设备,具体的该数据权限测试装置40包括第一获取模块11、第二获取模块12、确定模块13、生成模块14、第三获取模块15及显示模块16。
第一获取模块11,用于获取数据库的产品文档,所述产品文档包括角色信息集合及权限信息集合,所述角色信息集合包括多个角色信息,所述角色信息用于指示一类用户,所述权限信息集合包括多个权限信息,每个权限信息用于指示对所述数据库中的一类数据的权限;
第二获取模块12,用于获取与所述产品文档相关联的权限配置文件,根据所述权限配置文件确定所述角色信息集合与所述权限信息集合的关联关系,以及所述多个权限信息间的层次关系;
确定模块13,用于根据所述角色信息集合中每个角色信息确定角色节点,根据所述权限信息集合中每个权限信息确定权限节点;
生成模块14,用于基于所述角色信息集合与所述权限信息集合的关联关系,以及所述多个权限信息间的层次关系,生成每个角色信息对应的角色权限关系树,所述角色权限关系树由对应角色节点以及与该角色节点关联的多个权限节点组成;
第三获取模块15,用于基于目标角色信息对所述数据库的多个权限数据表进行联合查询,获取所述多个权限数据表中与所述目标角色信息相关联的权限集合,所述多个权限数据表中每个权限数据表包括多个业务数据名称,每个业务数据名称指示所述数据库中的一类数据,所述权限集合是由所述数据库中与所述目标角色信息相关联的业务数据名称组成,所述权限集合用于指示所述目标角色信息具有对所述数据库中所述与所述目标角色信息相关联的业务数据名称对应的至少一类数据的访问权限;
显示模块16,用于若所述角色信息集合中的各个角色信息对应的角色权限关系树中包含的权限节点名称与所述对应角色信息的权限集合中的业务数据名称均一致,则输出所述数据库的角色权限配置成功的测试结果。
其中,所述第二获取模块12,具体用于:
获取所述权限配置文件中的所述至少一段程序代码,并解析所述至少一段程序代码中的每一行代码语句;
根据所述每一行代码语句间的调用关系及执行顺序,确定所述角色信息集合中每个角色信息分别与所述权限信息集合中的各个权限信息间的关联关系,以及所述多个权限信息中的所述各个权限信息间的层次关系。
其中,所述生成模块14,具体用于:
将所述角色信息中第i个角色信息对应的第i个角色节点作为第i个角色权限关系树的根节点,i为正整数,i小于或等于根据所述角色信息集合中包括的角色信息的数量;
基于所述角色信息集合与所述权限信息集合的关联关系,从所述权限节点中获取与所述第i个角色节点相关联的第一权限节点;
基于所述权限信息集合中各个权限信息间的层次关系,确定所述第一权限节点间的包含关系;
根据所述第一权限节点间的包含关系,建立所述第一权限节点间的父子关系及兄弟关系,基于所述父子关系及所述兄弟关系将所述第一权限节点作为所述第i个角色权限关系树中的子节点;
直至得到所述角色信息集合中每个角色信息对应的角色权限关系树。
其中,所述装置,还包括:
第四获取模块17,用于获取所述目标角色信息对应的角色权限关系树;
所述第四获取模块17,还用于从所述目标角色信息对应的角色权限关系树中获取目标权限节点;
对比模块18,用于对比所述目标权限节点名称与所述目标角色信息的权限集合中的业务数据名称。
其中,所述装置,还包括:
第五获取模块19,用于若所述角色信息集合中的各个角色信息对应的角色权限关系树中包含的权限节点名称与所述对应角色信息的权限集合中的业务数据名称不同,则获取异常权限信息以及与所述异常权限信息关联的异常角色信息,所述异常权限信息为所述角色信息集合中的各个角色信息对应的角色权限关系树中包含的权限节点名称与所述对应角色信息的权限集合中的业务数据名称间不同的数据;
发送模块20,用于若所述异常权限信息属于所述权限集合而不属于所述权限节点,则向权限管理终端发送权限回收请求,以使所述权限管理终端回收所述异常角色信息对所述异常权限信息对应的数据的权限,所述权限回收请求包括所述异常权限信息以及所述异常角色信息;
所述发送模块20,还用于若所述异常权限信息属于所述权限节点而不属于所述权限集合,则向所述权限管理终端发送权限下发请求,以使所述权限管理终端为所述异常角色信息增加所述异常权限信息对应的数据的权限,所述权限下发请求包括所述异常权限信息以及所述异常角色信息。
其中,所述装置还包括:
接收模块21,用于接收所述权限管理终端发送的权限调整消息;
所述第三获取模块15,还用于从所述多个权限数据表中获取与所述异常角色信息关联的权限集合;
所述显示模块16,还用于若所述与所述异常角色信息关联的权限集合中的业务数据名称与所述异常角色信息的角色权限关系树中的权限节点名称均一致,则输出所述数据库中针对所述异常角色信息的权限调整成功的结果。
其中,所述第二获取模块12,具体用于:
若所述代码语句为条件语句,则确定所述条件语句中包括的角色信息与权限信息间相关联;
若所述代码语句为执行语句,则根据所述执行语句的执行顺序确定所述执行语句中包括的权限信息间的层次关系。
本申请实施例提供了一种数据权限测试装置,上述装置通过获取数据库的产品文档,该产品文档包括角色信息集合及权限信息集合,角色信息集合中包括的各个角色信息分别指示一类用户,权限信息集合中各个权限信息分别用于指示对数据库中的一类数据的权限;获取与产品文档相关联的权限配置文件,根据该权限配置文件确定角色信息集合与权限信息集合的关联关系,以及多个权限信息间的层次关系,基于该关联关系及层次关系,生成每个角色信息的角色权限关系树;对数据库中的多个权限数据表进行联合查询,以得到每个角色信息在数据库中关联的权限集合;将每个角色信息的角色权限关系树中的各个节点与该角色信息的权限集合进行对比,以对该数据库的角色权限配置进行测试,并输出该测试结果,实现了对用户具有的数据的操作权限的测试。本申请通过对产品文档中的角色信息和权限信息进行整理得到树形结构,该树形结构可以体现角色信息与权限信息间的关联关系及各个权限信息间的层次关系等,将杂乱的数据权限信息有序化,便于数据的提取和比较,从而提高对数据权限的测试效率。同时对数据库中的多个权限数据表进行联合查询,可以提高对数据库的查询效率,进而提高对权限的测试效率。
参见5,图5是本申请实施例提供的电子设备的结构示意图。如图5所示,本实施例中的电子设备可以包括:一个或多个处理器501、存储器502和输入输出接口503。上述处理器501、存储器502和输入输出接口503通过总线504连接。存储器502用于存储计算机程序,该计算机程序包括程序指令,输入输出接口503用于与调用方及处理方间进行数据交互;处理器501用于执行存储器502存储的程序指令,执行如下操作:
获取数据库的产品文档,所述产品文档包括角色信息集合及权限信息集合,所述角色信息集合包括多个角色信息,所述角色信息用于指示一类用户,所述权限信息集合包括多个权限信息,每个权限信息用于指示对所述数据库中的一类数据的权限;
获取与所述产品文档相关联的权限配置文件,根据所述权限配置文件确定所述角色信息集合与所述权限信息集合的关联关系,以及所述多个权限信息间的层次关系;
根据所述角色信息集合中每个角色信息确定角色节点,根据所述权限信息集合中每个权限信息确定权限节点;
基于所述角色信息集合与所述权限信息集合的关联关系,以及所述多个权限信息间的层次关系,生成每个角色信息对应的角色权限关系树,所述角色权限关系树由对应角色节点以及与该角色节点关联的多个权限节点组成;
基于目标角色信息对所述数据库的多个权限数据表进行联合查询,获取所述多个权限数据表中与所述目标角色信息相关联的权限集合,所述多个权限数据表中每个权限数据表包括多个业务数据名称,每个业务数据名称指示所述数据库中的一类数据,所述权限集合是由所述数据库中与所述目标角色信息相关联的业务数据名称组成,所述权限集合用于指示所述目标角色信息具有对所述数据库中所述与所述目标角色信息相关联的业务数据名称对应的至少一类数据的访问权限;
若所述角色信息集合中的各个角色信息对应的角色权限关系树中包含的权限节点名称与所述对应角色信息的权限集合中的业务数据名称均一致,则输出所述数据库的角色权限配置成功的测试结果。
在一些可行的实施方式中,上述处理器501可以是中央处理单元(centralprocessing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器502可以包括只读存储器和随机存取存储器,并向处理器501和输入输出接口503提供指令和数据。存储器502的一部分还可以包括非易失性随机存取存储器。例如,存储器502还可以存储设备类型的信息。
具体实现中,上述电子设备可通过其内置的各个功能模块执行如上述图2各个步骤所提供的实现方式,具体可参见上述图2中各个步骤所提供的实现方式,在此不再赘述。
本申请实施例通过提供一种电子设备,包括:处理器、输入输出接口、存储器,通过处理器获取存储器中的计算机指令,执行上述图2中所示方法的各个步骤,通过权限配置文件将产品文档中杂乱的角色信息集合及权限信息集合整理成角色权限关系树,使得角色信息集合与权限信息集合有序化,并对数据库中的多个权限数据表进行联合查询,提高查询的效率,从而可以提高对角色的数据权限进行测试的效率。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时实现图2中各个步骤所提供的数据权限测试方法,具体可参见上述图2中各个步骤所提供的实现方式,在此不再赘述。
上述计算机可读存储介质可以是前述任一实施例提供的数据权限测试装置或者上述终端设备的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种数据权限测试方法,其特征在于,包括:
获取数据库的产品文档,所述产品文档包括角色信息集合及权限信息集合,所述角色信息集合包括多个角色信息,所述角色信息用于指示一类用户,所述权限信息集合包括多个权限信息,每个权限信息用于指示对所述数据库中的一类数据的权限;
获取与所述产品文档相关联的权限配置文件,根据所述权限配置文件确定所述角色信息集合与所述权限信息集合的关联关系,以及所述多个权限信息间的层次关系;
根据所述角色信息集合中每个角色信息确定角色节点,根据所述权限信息集合中每个权限信息确定权限节点;
基于所述角色信息集合与所述权限信息集合的关联关系,以及所述多个权限信息间的层次关系,生成每个角色信息对应的角色权限关系树,所述角色权限关系树由对应角色节点以及与该角色节点关联的多个权限节点组成;
基于目标角色信息对所述数据库的多个权限数据表进行联合查询,获取所述多个权限数据表中与所述目标角色信息相关联的权限集合,所述多个权限数据表中每个权限数据表包括多个业务数据名称,每个业务数据名称指示所述数据库中的一类数据,所述权限集合是由所述数据库中与所述目标角色信息相关联的业务数据名称组成,所述权限集合用于指示所述目标角色信息具有对所述数据库中所述与所述目标角色信息相关联的业务数据名称对应的至少一类数据的访问权限;
若所述角色信息集合中的各个角色信息对应的角色权限关系树中包含的权限节点名称与所述对应角色信息的权限集合中的业务数据名称均一致,则输出所述数据库的角色权限配置成功的测试结果。
2.如权利要求1所述的方法,其特征在于,所述权限配置文件包括至少一段程序代码,所述根据所述权限配置文件确定所述角色信息集合与所述权限信息集合的关联关系,以及所述多个权限信息间的层次关系,包括:
获取所述权限配置文件中的所述至少一段程序代码,并解析所述至少一段程序代码中的每一行代码语句;
根据所述每一行代码语句间的调用关系及执行顺序,确定所述角色信息集合中每个角色信息分别与所述权限信息集合中的各个权限信息间的关联关系,以及所述多个权限信息中的所述各个权限信息间的层次关系。
3.如权利要求1所述的方法,其特征在于,所述基于所述角色信息集合与所述权限信息集合的关联关系,以及所述多个权限信息间的层次关系,生成每个角色信息对应的角色权限关系树,包括:
将所述角色信息中第i个角色信息对应的第i个角色节点作为第i个角色权限关系树的根节点,i为正整数,i小于或等于根据所述角色信息集合中包括的角色信息的数量;
基于所述角色信息集合与所述权限信息集合的关联关系,从所述权限节点中获取与所述第i个角色节点相关联的第一权限节点;
基于所述权限信息集合中各个权限信息间的层次关系,确定所述第一权限节点间的包含关系;
根据所述第一权限节点间的包含关系,建立所述第一权限节点间的父子关系及兄弟关系,基于所述父子关系及所述兄弟关系将所述第一权限节点作为所述第i个角色权限关系树中的子节点;
直至得到所述角色信息集合中每个角色信息对应的角色权限关系树。
4.如权利要求1所述的方法,其特征在于,所述获取所述多个权限数据表中与所述目标角色信息相关联的权限集合之后,还包括:
获取所述目标角色信息对应的角色权限关系树;
从所述目标角色信息对应的角色权限关系树中获取目标权限节点;
对比所述目标权限节点名称与所述目标角色信息的权限集合中的业务数据名称。
5.如权利要求1所述的方法,其特征在于,所述方法之后,还包括:
若所述角色信息集合中的各个角色信息对应的角色权限关系树中包含的权限节点名称与所述对应角色信息的权限集合中的业务数据名称不同,则获取异常权限信息以及与所述异常权限信息关联的异常角色信息,所述异常权限信息为所述角色信息集合中的各个角色信息对应的角色权限关系树中包含的权限节点名称与所述对应角色信息的权限集合中的业务数据名称间不同的数据;
若所述异常权限信息属于所述权限集合而不属于所述权限节点,则向权限管理终端发送权限回收请求,以使所述权限管理终端回收所述异常角色信息对所述异常权限信息对应的数据的权限,所述权限回收请求包括所述异常权限信息以及所述异常角色信息;
若所述异常权限信息属于所述权限节点而不属于所述权限集合,则向所述权限管理终端发送权限下发请求,以使所述权限管理终端为所述异常角色信息增加所述异常权限信息对应的数据的权限,所述权限下发请求包括所述异常权限信息以及所述异常角色信息。
6.如权利要求5所述的方法,其特征在于,所述方法之后还包括:
接收所述权限管理终端发送的权限调整消息,从所述多个权限数据表中获取与所述异常角色信息关联的权限集合;
若所述与所述异常角色信息关联的权限集合中的业务数据名称与所述异常角色信息的角色权限关系树中的权限节点名称均一致,则输出所述数据库中针对所述异常角色信息的权限调整成功的结果。
7.如权利要求2所述的方法,其特征在于,所述根据所述每一行代码语句间的调用关系及执行顺序,确定所述角色信息集合中每个角色信息分别与所述权限信息集合中的各个权限信息间的关联关系,以及所述多个权限信息中的所述各个权限信息间的层次关系,包括:
若所述代码语句为条件语句,则确定所述条件语句中包括的角色信息与权限信息间相关联;
若所述代码语句为执行语句,则根据所述执行语句的执行顺序确定所述执行语句中包括的权限信息间的层次关系。
8.一种数据权限测试装置,其特征在于,所述装置包括:
第一获取模块,用于获取数据库的产品文档,所述产品文档包括角色信息集合及权限信息集合,所述角色信息集合包括多个角色信息,所述角色信息用于指示一类用户,所述权限信息集合包括多个权限信息,每个权限信息用于指示对所述数据库中的一类数据的权限;
第二获取模块,用于获取与所述产品文档相关联的权限配置文件,根据所述权限配置文件确定所述角色信息集合与所述权限信息集合的关联关系,以及所述多个权限信息间的层次关系;
确定模块,用于根据所述角色信息集合中每个角色信息确定角色节点,根据所述权限信息集合中每个权限信息确定权限节点;
生成模块,用于基于所述角色信息集合与所述权限信息集合的关联关系,以及所述多个权限信息间的层次关系,生成每个角色信息对应的角色权限关系树,所述角色权限关系树由对应角色节点以及与该角色节点关联的多个权限节点组成;
第三获取模块,用于基于目标角色信息对所述数据库的多个权限数据表进行联合查询,获取所述多个权限数据表中与所述目标角色信息相关联的权限集合,所述多个权限数据表中每个权限数据表包括多个业务数据名称,每个业务数据名称指示所述数据库中的一类数据,所述权限集合是由所述数据库中与所述目标角色信息相关联的业务数据名称组成,所述权限集合用于指示所述目标角色信息具有对所述数据库中所述与所述目标角色信息相关联的业务数据名称对应的至少一类数据的访问权限;
显示模块,用于若所述角色信息集合中的各个角色信息对应的角色权限关系树中包含的权限节点名称与所述对应角色信息的权限集合中的业务数据名称均一致,则输出所述数据库的角色权限配置成功的测试结果。
9.一种电子设备,其特征在于,包括处理器、存储器、输入输出接口;
所述处理器分别与所述存储器和所述输入输出接口相连,其中,所述输入输出接口用于进行数据交互,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010131924.0A CN111400170B (zh) | 2020-02-29 | 2020-02-29 | 一种数据权限测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010131924.0A CN111400170B (zh) | 2020-02-29 | 2020-02-29 | 一种数据权限测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111400170A CN111400170A (zh) | 2020-07-10 |
CN111400170B true CN111400170B (zh) | 2024-06-07 |
Family
ID=71435958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010131924.0A Active CN111400170B (zh) | 2020-02-29 | 2020-02-29 | 一种数据权限测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400170B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220114265A1 (en) * | 2020-10-08 | 2022-04-14 | Google Llc | Unified viewing of roles and permissions in a computer data processing system |
CN112364361A (zh) * | 2020-11-13 | 2021-02-12 | 四川长虹电器股份有限公司 | 一种云平台矩阵式资源访问控制***及控制方法 |
CN113535574B (zh) * | 2021-07-26 | 2022-07-19 | 工银科技有限公司 | 一种测试用户数据的自动生成方法、装置、设备和介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763960A (zh) * | 2018-06-04 | 2018-11-06 | 北京奇虎科技有限公司 | 资源权限管理方法及装置 |
CN110162960A (zh) * | 2019-05-22 | 2019-08-23 | 陕西中达公路技术服务有限公司 | 一种基于用户管理的权限验证方法 |
WO2019196224A1 (zh) * | 2018-04-09 | 2019-10-17 | 平安科技(深圳)有限公司 | 制度信息处理方法、装置、计算机设备和存储介质 |
CN110399747A (zh) * | 2019-07-18 | 2019-11-01 | 佳都新太科技股份有限公司 | 一种用户权限关联方法、查询方法及装置 |
-
2020
- 2020-02-29 CN CN202010131924.0A patent/CN111400170B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019196224A1 (zh) * | 2018-04-09 | 2019-10-17 | 平安科技(深圳)有限公司 | 制度信息处理方法、装置、计算机设备和存储介质 |
CN108763960A (zh) * | 2018-06-04 | 2018-11-06 | 北京奇虎科技有限公司 | 资源权限管理方法及装置 |
CN110162960A (zh) * | 2019-05-22 | 2019-08-23 | 陕西中达公路技术服务有限公司 | 一种基于用户管理的权限验证方法 |
CN110399747A (zh) * | 2019-07-18 | 2019-11-01 | 佳都新太科技股份有限公司 | 一种用户权限关联方法、查询方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111400170A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109614823B (zh) | 一种数据的处理方法、装置及设备 | |
CN108536761B (zh) | 报表数据查询方法及服务器 | |
CN111400170B (zh) | 一种数据权限测试方法及装置 | |
US10025878B1 (en) | Data lineage analysis | |
CN107729227B (zh) | 应用程序测试范围确定方法、***、服务器和存储介质 | |
CN111124906A (zh) | 基于动态埋点的跟踪方法、编译方法、装置和电子设备 | |
CN111090582A (zh) | 错误代码定位方法、装置、存储介质及电子设备 | |
US9626328B1 (en) | Method and system for on-demand aggregated logging for distributed systems | |
CN113448562B (zh) | 一种逻辑代码自动生成方法、装置和电子设备 | |
CN109672608B (zh) | 根据时间发送消息的方法 | |
CN112084179B (zh) | 一种数据处理的方法、装置、设备及存储介质 | |
US11409724B2 (en) | Hashed balanced tree data structure | |
CN107391528B (zh) | 前端组件依赖信息搜索方法及设备 | |
CN110602163B (zh) | 文件上传方法及装置 | |
CN106156904B (zh) | 一种基于eID的跨平台虚拟资产溯源方法 | |
CN111159040A (zh) | 一种测试数据生成方法、装置、设备及存储介质 | |
CN114780497B (zh) | 批量文件处理方法、装置、计算机设备、介质和程序产品 | |
Gonçalves et al. | Revisiting the dataset gap problem–On availability, assessment and perspective of mobile forensic corpora | |
CN114860566A (zh) | 源代码测试方法、装置、电子设备及存储介质 | |
CN113778996A (zh) | 一种大数据流数据处理方法、装置、电子设备及存储介质 | |
US20140244539A1 (en) | Business process management, configuration and execution | |
CN116483735B (zh) | 一种代码变更的影响分析方法、装置、存储介质及设备 | |
CN115061723A (zh) | 信息处理方法、装置、电子设备及计算机可读存储介质 | |
CN114416886A (zh) | 一种确定数据关系的方法、装置、设备及存储介质 | |
Ng’ang’a | Incorporating Mobile Forensics Into Nugget |
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 |