本申请涉及系统资源管理技术领域,尤其涉及一种数据权限匹配方法、装置、电子设备及存储介质。
背景技术:
权限管理是业务系统中不可忽视的话题,作为业务系统的安全策略,它控制着用户的操作范围和用户可以访问数据的范围。业务系统中的权限通常可分为操作权限和数据权限,所谓操作权限即用户是否有权进行一个操作,而数据权限即用户是否有权访问一定范围的数据。不管是操作权限还是数据权限,一般都呈现为层次化控制概念,正是这种层次化管理策略,使得业务系统中数据权限匹配的灵活性较低。
技术实现要素:
针对上述问题,本申请提供了一种数据权限匹配方法、装置、电子设备及存储介质,有利于提高业务系统中数据权限匹配的灵活性。
为实现上述目的,本申请实施例第一方面提供了一种数据权限匹配方法,该方法包括:
接收用户的数据访问请求,解析所述数据访问请求得到所述用户的用户标识和待访问的数据类型;
利用所述用户标识、所述数据类型及授权匹配关系库进行包含匹配计算,得到第一结果集;
利用所述用户标识、所述第一结果集及所述授权匹配关系库进行排除匹配计算,得到所述用户具备访问权限的第二结果集。
结合第一方面,在一种示例中,所述利用所述用户标识、所述数据类型及授权匹配关系库进行包含匹配计算,得到第一结果集,包括:
初始化所述第一结果集为空;
对元素信息库中属于所述数据类型的数据进行遍历,取出第一目标数据,并获取所述第一目标数据的第一层次信息;
利用所述用户标识、所述第一目标数据的第一层次信息及所述数据类型在所述授权匹配关系库中进行前缀匹配计算;
若返回为成功,则将所述第一目标数据添加到所述第一结果集中。
结合第一方面,在一种示例中,所述利用所述用户标识、所述第一结果集及所述授权匹配关系库进行排除匹配计算,得到所述用户具备访问权限的第二结果集,包括:
初始化所述第二结果集为空;
对所述第一结果集中的所述第一目标数据进行遍历,取出第二目标数据,并获取所述第二目标数据的第二层次信息;
利用所述用户标识、所述第二目标数据的第二层次信息及所述数据类型在所述授权匹配关系库中进行前缀匹配计算;
若返回为失败,则将所述第二目标数据添加到所述第二结果集中。
结合第一方面,在一种示例中,所述利用所述用户标识、所述第一目标数据的第一层次信息及所述数据类型在所述授权匹配关系库中进行前缀匹配计算,包括:
对所述第一层次信息进行深度遍历,获取当前深度的元素标识,并定义第一授权信息;
利用所述用户标识查询所述授权匹配关系库,若所述第一授权信息存在于所述用户在所述数据类型的当前深度的授权信息中,则确定所述用户在当前深度匹配成功;若所述第一授权信息在所述用户在所述数据类型的当前深度的授权信息为空,则确定所述用户在当前深度匹配成功;
若所述第一层次信息遍历完毕,则返回成功;若所述用户在当前深度匹配失败,则结束匹配,返回失败。
结合第一方面,在一种示例中,所述利用所述用户标识、所述第二目标数据的第二层次信息及所述数据类型在所述授权匹配关系库中进行前缀匹配计算,包括:
对所述第二层次信息进行深度遍历,获取当前深度的元素标识,并定义第二授权信息;
利用所述用户标识查询所述授权匹配关系库,若所述第二授权信息存在于所述用户在所述数据类型的当前深度的授权信息中,则确定所述用户在当前深度匹配成功;若所述第二授权信息在所述用户在所述数据类型的当前深度的授权信息为空,则确定所述用户在当前深度匹配成功;
若所述第二层次信息遍历完毕,则返回成功;若所述用户在当前深度匹配失败,则结束匹配,返回失败。
结合第一方面,在一种示例中,所述授权匹配关系库中除根元素以外的元素以n叉树进行存储,所述方法还包括:
以预设策略对所述授权匹配关系库中的n叉树进行遍历,若n叉树中一目标层次的父元素包含所述目标层次的下一层次的所有子元素,且所述子元素的完整度标识达到预设值,则将该下一层次的所有所述子元素删除,将所述父元素的完整度标识为所述预设值。
本申请实施例第二方面提供了一种数据权限匹配装置,该装置包括:
请求获取模块,用于接收用户的数据访问请求,解析所述数据访问请求得到所述用户的用户标识和待访问的数据类型;
第一匹配计算模块,用于利用所述用户标识、所述数据类型及授权匹配关系库进行包含匹配计算,得到第一结果集;
第二匹配计算模块,用于利用所述用户标识、所述第一结果集及所述授权匹配关系库进行排除匹配计算,得到所述用户具备访问权限的第二结果集。
本申请实施例第三方面提供了一种电子设备,所述电子设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的数据权限匹配方法中的步骤。
本申请实施例第四方面提供了一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的数据权限匹配方法中的步骤。
本申请的上述方案至少包括以下有益效果:通过接收用户的数据访问请求,解析所述数据访问请求得到所述用户的用户标识和待访问的数据类型;利用所述用户标识、所述数据类型及授权匹配关系库进行包含匹配计算,得到第一结果集;利用所述用户标识、所述第一结果集及所述授权匹配关系库进行排除匹配计算,得到第二结果集,所述第二结果集为所述用户具备访问权限的数据集。这样在接收到数据访问请求时,对指定的数据类型进行包含匹配计算和排除匹配计算,在该数据类型的全量数据中进行排除,从而有利于减少整个匹配流程的匹配量,同时,包含匹配计算和排除匹配计算中均采用了分层级的匹配方式,从而有利于实现数据权限匹配随着各层次数据的变化自适应,匹配量的减少以及能够随着各层次数据的变化自适应,使得业务系统中数据权限匹配更具灵活性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种应用架构图;
图2为本申请实施例提供的一种授权匹配计算单元的示意图;
图3为本申请实施例提供的一种数据权限匹配方法的流程示意图;
图4为本申请实施例提供的一种用户信息库的示意图;
图5为本申请实施例提供的一种元素信息库的示意图;
图6为本申请实施例提供的一种授权匹配关系库的示意图;
图7为本申请实施例提供的一种前缀匹配计算的示意图;
图8为本申请实施例提供的另一种数据权限匹配方法的流程示意图;
图9为本申请实施例提供的一种数据权限匹配装置的结构示意图;
图10为本申请实施例提供的另一种数据权限匹配装置的结构示意图;
图11为本申请提供一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请说明书、权利要求书和附图中出现的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,术语“第一”、“第二”和“第三”等是用于区别不同的对象,而并非用于描述特定的顺序。
首先结合相关附图来举例介绍下本申请实施例的方案可能应用到的网络系统架构。请参见图1,图1为本申请实施例提供的一种应用架构图,该应用架构可以理解为一种数据权限匹配系统,如图1所示,主要包括数据域和管理域,数据域用于存储各种与授权匹配计算相关的数据,包括用户信息库、元素信息库和授权匹配关系库,用户信息库用于存储业务系统授权控制施加的用户的信息,例如:用户标识id(identitydocument),用户姓名、年龄等其他用户信息,元素信息库用于存储授权所控制的数据的信息,其中的元素以层级进行存储,例如:按某市某区某街道某社区的层级关系进行存储,授权匹配关系库用于存储用户与元素信息库中的元素的可访问关系,例如:用户a对数据类型b的第c层的元素的访问权限等等。管理域主要完成数据权限的管理、匹配计算等操作,包括授权管理单元和授权匹配计算单元,授权管理单元用于对授权匹配关系库中的授权信息进行管理,对外提供授权操作接口,例如:常见的crud(create(增加),retrieve(读取),update(更新),delete(删除))接口,授权管理单元还用于在授权匹配关系库中的授权信息变化时触发授权合并操作,以减少授权匹配关系库中的授权信息的冗余,提高数据权限匹配的效率和灵活性,例如:将某一层级的元素的授权信息合并到其父元素所在的层级,实现授权信息与层次的自适应;授权匹配计算单元主要用于对指定的用户和指定的数据类型进行授权匹配计算,如图2所示,其核心计算过程涉及到包含(include)匹配计算和排除(exclude)匹配计算,所谓包含匹配是指匹配成功则保留,以做下一步处理,匹配失败则丢弃,所谓排除匹配是指匹配成功则排除或丢弃,匹配失败则保留。其中,包含匹配计算和排除匹配计算均公用了前缀匹配计算,授权匹配计算单元的最终目的是获取用户具备访问权限的数据。基于图1所示的应用架构,以下结合其他附图对本申请实施例提供的数据权限匹配方法进行详细阐述。
请参见图3,图3为本申请实施例提供的一种数据权限匹配方法的流程示意图,如图3所示,包括步骤s31-s33:
s31,接收用户的数据访问请求,解析所述数据访问请求得到所述用户的用户标识和待访问的数据类型。
本申请具体实施例中,数据访问请求可以是某个数据集合的访问请求,待访问的数据类型即用户欲访问的数据类型,得到用户的用户标识id和待访问的数据类型,就相当于指定了授权匹配计算的两个对象。
s32,利用所述用户标识、所述数据类型及授权匹配关系库进行包含匹配计算,得到第一结果集。
本申请具体实施例中,如图4所示,用户信息库中存储有所有用户的用户信息元素,每个用户信息元素为map数据结构,每个用户信息元素中包括用户标识id和用户姓名、性别、年龄、职业等众多用户信息,key为用户标识id。如图5所示,元素信息库中存储有多个数据类型的元素(数据),每个数据类型的元素为map数据结构,key为root(根)元素的标识id,root元素的下一层次(level1)的数据结构为n叉树,每一棵n叉树存储了该类型的数据所有的授权控制元素,每个元素存储有元素自身标识id和元素的父元素的标识id。如图6所示,授权匹配关系库存储有每个用户在某种数据类型下的某个层次的授权信息,是一个三层次的组织结构,key为用户标识id,第一层为用户级别的信息,第二层为数据权限匹配过程中的包含匹配计算和排除匹配计算,第三层是某一个用户在某一种数据类型的某层上的授权信息,其数据结构与元素信息库中的结构类似,root元素的下一层次以n叉树进行存储,每一层次上的授权信息均包括元素标识id、元素的父元素的标识id。
第一结果集即经过包含匹配计算后的初始集,在指定用户标识id和数据类型后,首先进行包含匹配计算,初始化第一结果集result1为空,在元素信息库中对指定的数据类型进行数据遍历,取出一条数据,定义为第一目标数据,获取该第一目标数据的层次信息,定义为第一层次信息,利用用户标识id、第一层次信息、待访问的数据类型在授权匹配关系库中进行前缀匹配计算,若收到的返回值为成功,则将第一目标数据添加到第一结果集中。
基于授权匹配关系库的描述,利用用户标识id、第一层次信息、待访问的数据类型在授权匹配关系库中进行前缀匹配计算的实现过程为:对第一层次信息进行深度遍历,获取当前深度的元素标识,并定义第一授权信息;利用用户标识查询授权匹配关系库,若第一授权信息存在于用户在该数据类型的当前深度的授权信息中,则确定用户在当前深度匹配成功;若第一授权信息在用户在该数据类型的当前深度的授权信息为空,则确定用户在当前深度匹配成功;若第一层次信息遍历完毕,则返回成功;若用户在当前深度匹配失败,则结束匹配,返回失败,若收到的返回值为失败,则将第一目标数据丢弃。
如图7所示,第一层次信息可以是root层、层次1(level1)、层次2(level2)、层次3(level3)……层次n(leveln),对应的,每个层次的深度定义为depth(root)、depth(1)、depth(2)、depth(3)……depth(n),设遍历的当前深度为depth(x),获取depth(x)上的元素标识id,定义第一授权信息depth(x)_id,以用户标识id查询授权匹配关系库,如果depth(x)_id存在于用户在所述数据类型的当前深度的授权信息中,则认为用户在当前层匹配成功,如果depth(x)_id在用户在所述数据类型的当前深度的授权信息为空,则也认为用户在当前层匹配成功,直到第一层次信息遍历完毕,返回成功;如果depth(x)_id不存在于用户在所述数据类型的当前深度的授权信息中,则认为用户在当前层匹配失败,结束在当前层的匹配,返回失败。
s33,利用所述用户标识、所述第一结果集及所述授权匹配关系库进行排除匹配计算,得到所述用户具备访问权限的第二结果集。
本申请具体实施例中,第二结果集即对第一结果集进行排除匹配计算得到的最终结果集,是用户具备访问权限的数据的集合。在指定用户标识id和数据类型后,对第一结果集进行排除匹配计算,初始化第二结果集result2为空,在第一结果集中对指定的数据类型进行数据遍历,取出一条数据,定义为第二目标数据,获取该第二目标数据的层次信息,定义为第二层次信息,利用用户标识id、第二层次信息、待访问的数据类型在授权匹配关系库中进行前缀匹配计算,若收到的返回值为失败,则将第二目标数据添加到第二结果集中,若收到的返回值为成功,则将第二目标数据丢弃。
具体的,利用用户标识id、第二层次信息、待访问的数据类型在授权匹配关系库中进行前缀匹配计算的实现过程为:对所述第二层次信息进行深度遍历,获取当前深度的元素标识,并定义第二授权信息;利用所述用户标识查询所述授权匹配关系库,若所述第二授权信息存在于所述用户在所述数据类型的当前深度的授权信息中,则确定所述用户在当前深度匹配成功;若所述第二授权信息在所述用户在所述数据类型的当前深度的授权信息为空,则确定所述用户在当前深度匹配成功;若所述第二层次信息遍历完毕,则返回成功;若所述用户在当前深度匹配失败,则结束匹配,返回失败。再次参照图7,设遍历的第二层次信息的当前深度为depth(y),获取depth(y)上的元素标识id,定义第一授权信息depth(y)_id,以用户标识id查询授权匹配关系库,如果depth(y)_id存在于用户在所述数据类型的当前深度的授权信息中,则认为用户在当前层匹配成功,如果depth(y)_id在用户在所述数据类型的当前深度的授权信息为空,则也认为用户在当前层匹配成功,直到第一层次信息遍历完毕,返回成功;如果depth(y)_id不存在于用户在所述数据类型的当前深度的授权信息中,则认为用户在当前层匹配失败,结束在当前层的匹配,返回失败。
可以看出,本申请实施例通过接收用户的数据访问请求,解析所述数据访问请求得到所述用户的用户标识和待访问的数据类型;利用所述用户标识、所述数据类型及授权匹配关系库进行包含匹配计算,得到第一结果集;利用所述用户标识、所述第一结果集及所述授权匹配关系库进行排除匹配计算,得到第二结果集,所述第二结果集为所述用户具备访问权限的数据集。这样在接收到数据访问请求时,对指定的数据类型进行包含匹配计算和排除匹配计算,在该数据类型的全量数据中进行排除,从而有利于减少整个匹配流程的匹配量,同时,包含匹配计算和排除匹配计算中均采用了分层级的匹配方式,从而有利于实现数据权限匹配随着各层次数据的变化自适应,匹配量的减少以及能够随着各层次数据的变化自适应,使得业务系统中数据权限匹配更具灵活性。
请参见图8,图8为本申请实施例提供的另一种数据权限匹配方法的流程示意图,如图8所示,包括步骤s81-s85:
s81,接收用户的数据访问请求,解析所述数据访问请求得到所述用户的用户标识和待访问的数据类型;
s82,初始化第一结果集为空,对元素信息库中属于所述数据类型的数据进行遍历,取出第一目标数据,并获取所述第一目标数据的第一层次信息;
s83,利用所述用户标识、所述第一目标数据的第一层次信息及所述数据类型在所述授权匹配关系库中进行前缀匹配计算;
s84,若返回为成功,则将所述第一目标数据添加到所述第一结果集中;
s85,利用所述用户标识、所述第一结果集及所述授权匹配关系库进行排除匹配计算,得到所述用户具备访问权限的第二结果集。
图8所示的实施例的具体实现在图3所示的实施例中已有相关描述,且能达到相同或相似的有益效果,此处不再赘述。
进一步的,所述方法还包括:
以预设策略对所述授权匹配关系库中的n叉树进行遍历,若n叉树中一目标层次的父元素包含所述目标层次的下一层次的所有子元素,且所述子元素的完整度标识达到预设值,则将该下一层次的所有所述子元素删除,将所述父元素的完整度标识为所述预设值。
本申请具体实施例中,授权匹配关系库中授权信息发生变化时,将触发针对授权匹配关系库的授权合并操作,具体的,对于授权匹配关系库中的每棵n叉树,采用自底向上、优先广度再优先深度的策略进行遍历,此处的预设值取100%,如图6中的n叉树,从层次3(level3)开始,优先广度再优先深度,当遍历到level3-元素2时,层次3的父元素包含了层次3所有的子元素,而且这些子元素的完整度标识为100%,则将层次3所有的子元素删除,将父元素的完整度标识为100%,直至遍历到层次1的每个元素。
该实施方式中,在授权匹配关系库的授权信息发生变化时,及时对授权匹配关系库中执行授权合并操作,以减少授权信息的冗余,优化后续的匹配计算过程。
请参见图9,图9为本申请实施例提供的一种数据权限匹配装置的结构示意图,如图9所示,该装置包括:
请求获取模块91,用于接收用户的数据访问请求,解析所述数据访问请求得到所述用户的用户标识和待访问的数据类型;
第一匹配计算模块92,用于利用所述用户标识、所述数据类型及授权匹配关系库进行包含匹配计算,得到第一结果集;
第二匹配计算模块93,用于利用所述用户标识、所述第一结果集及所述授权匹配关系库进行排除匹配计算,得到所述用户具备访问权限的第二结果集。
在一种示例中,在利用所述用户标识、所述数据类型及授权匹配关系库进行包含匹配计算,得到第一结果集方面,所述第一匹配计算模块92具体用于:
初始化所述第一结果集为空;
对元素信息库中属于所述数据类型的数据进行遍历,取出第一目标数据,并获取所述第一目标数据的第一层次信息;
利用所述用户标识、所述第一目标数据的第一层次信息及所述数据类型在所述授权匹配关系库中进行前缀匹配计算;
若返回为成功,则将所述第一目标数据添加到所述第一结果集中。
在一种示例中,在利用所述用户标识、所述第一结果集及所述授权匹配关系库进行排除匹配计算,得到所述用户具备访问权限的第二结果集方面,所述第二匹配计算模块93具体用于:
初始化所述第二结果集为空;
对所述第一结果集中的所述第一目标数据进行遍历,取出第二目标数据,并获取所述第二目标数据的第二层次信息;
利用所述用户标识、所述第二目标数据的第二层次信息及所述数据类型在所述授权匹配关系库中进行前缀匹配计算;
若返回为失败,则将所述第二目标数据添加到所述第二结果集中。
在一种示例中,在利用所述用户标识、所述第一目标数据的第一层次信息及所述数据类型在所述授权匹配关系库中进行前缀匹配计算方面,所述第一匹配计算模块92具体用于:
对所述第一层次信息进行深度遍历,获取当前深度的元素标识,并定义第一授权信息;
利用所述用户标识查询所述授权匹配关系库,若所述第一授权信息存在于所述用户在所述数据类型的当前深度的授权信息中,则确定所述用户在当前深度匹配成功;若所述第一授权信息在所述用户在所述数据类型的当前深度的授权信息为空,则确定所述用户在当前深度匹配成功;
若所述第一层次信息遍历完毕,则返回成功;若所述用户在当前深度匹配失败,则结束匹配,返回失败。
在一种示例中,在利用所述用户标识、所述第二目标数据的第二层次信息及所述数据类型在所述授权匹配关系库中进行前缀匹配计算方面,所述第二匹配计算模块93具体用于:
对所述第二层次信息进行深度遍历,获取当前深度的元素标识,并定义第二授权信息;
利用所述用户标识查询所述授权匹配关系库,若所述第二授权信息存在于所述用户在所述数据类型的当前深度的授权信息中,则确定所述用户在当前深度匹配成功;若所述第二授权信息在所述用户在所述数据类型的当前深度的授权信息为空,则确定所述用户在当前深度匹配成功;
若所述第二层次信息遍历完毕,则返回成功;若所述用户在当前深度匹配失败,则结束匹配,返回失败。
在一种示例中,如图10所示,所述装置还包括授权合并模块94,所述授权合并模块94具体用于:
以预设策略对所述授权匹配关系库中的n叉树进行遍历,若n叉树中一目标层次的父元素包含所述目标层次的下一层次的所有子元素,且所述子元素的完整度标识达到预设值,则将该下一层次的所有所述子元素删除,将所述父元素的完整度标识为所述预设值。
以预设策略对所述授权匹配关系库中的n叉树进行遍历,若n叉树中一目标层次的父元素包含所述目标层次的下一层次的所有子元素,且所述子元素的完整度标识达到预设值,则将该下一层次的所有所述子元素删除,将所述父元素的完整度标识为所述预设值。
可以看出,本申请实施例提供的数据权限匹配装置通过接收用户的数据访问请求,解析所述数据访问请求得到所述用户的用户标识和待访问的数据类型;利用所述用户标识、所述数据类型及授权匹配关系库进行包含匹配计算,得到第一结果集;利用所述用户标识、所述第一结果集及所述授权匹配关系库进行排除匹配计算,得到第二结果集,所述第二结果集为所述用户具备访问权限的数据集。这样在接收到数据访问请求时,对指定的数据类型进行包含匹配计算和排除匹配计算,在该数据类型的全量数据中进行排除,从而有利于减少整个匹配流程的匹配量,同时,包含匹配计算和排除匹配计算中均采用了分层级的匹配方式,从而有利于实现数据权限匹配随着各层次数据的变化自适应,匹配量的减少以及能够随着各层次数据的变化自适应,使得业务系统中数据权限匹配更具灵活性。
根据本申请的一个实施例,图9和图10所示的数据权限匹配装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本发明的其它实施例中,数据权限匹配装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(cpu)、随机存取存储介质(ram)、只读存储介质(rom)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图3或图8中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图9和图10所示的装置设备,以及来实现本发明实施例的上述方法。所述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
基于上述方法实施例以及装置实施例的描述,本发明实施例还提供一种电子设备。请参见图11,该电子设备至少包括处理器1101、输入设备1102、输出设备1103以及计算机存储介质1104。其中,电子设备内的处理器1101、输入设备1102、输出设备1103以及计算机存储介质1104可通过总线或其他方式连接。
计算机存储介质1104可以存储在电子设备的存储器中,所述计算机存储介质1104用于存储计算机程序,所述计算机程序包括程序指令,所述处理器1101用于执行所述计算机存储介质1104存储的程序指令。处理器1101(或称cpu(centralprocessingunit,中央处理器))是电子设备的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能。
在一个实施例中,本申请实施例提供的电子设备的处理器1101可以用于进行一系列数据权限匹配处理,包括:
接收用户的数据访问请求,解析所述数据访问请求得到所述用户的用户标识和待访问的数据类型;
利用所述用户标识、所述数据类型及授权匹配关系库进行包含匹配计算,得到第一结果集;
利用所述用户标识、所述第一结果集及所述授权匹配关系库进行排除匹配计算,得到所述用户具备访问权限的第二结果集。
在一种示例中,处理器1101执行所述利用所述用户标识、所述数据类型及授权匹配关系库进行包含匹配计算,得到第一结果集,包括:
初始化所述第一结果集为空;
对元素信息库中属于所述数据类型的数据进行遍历,取出第一目标数据,并获取所述第一目标数据的第一层次信息;
利用所述用户标识、所述第一目标数据的第一层次信息及所述数据类型在所述授权匹配关系库中进行前缀匹配计算;
若返回为成功,则将所述第一目标数据添加到所述第一结果集中。
在一种示例中,处理器1101执行所述利用所述用户标识、所述第一结果集及所述授权匹配关系库进行排除匹配计算,得到所述用户具备访问权限的第二结果集,包括:
初始化所述第二结果集为空;
对所述第一结果集中的所述第一目标数据进行遍历,取出第二目标数据,并获取所述第二目标数据的第二层次信息;
利用所述用户标识、所述第二目标数据的第二层次信息及所述数据类型在所述授权匹配关系库中进行前缀匹配计算;
若返回为失败,则将所述第二目标数据添加到所述第二结果集中。
在一种示例中,处理器1101执行所述利用所述用户标识、所述第一目标数据的第一层次信息及所述数据类型在所述授权匹配关系库中进行前缀匹配计算,包括:
对所述第一层次信息进行深度遍历,获取当前深度的元素标识,并定义第一授权信息;
利用所述用户标识查询所述授权匹配关系库,若所述第一授权信息存在于所述用户在所述数据类型的当前深度的授权信息中,则确定所述用户在当前深度匹配成功;若所述第一授权信息在所述用户在所述数据类型的当前深度的授权信息为空,则确定所述用户在当前深度匹配成功;
若所述第一层次信息遍历完毕,则返回成功;若所述用户在当前深度匹配失败,则结束匹配,返回失败。
在一种示例中,处理器1101执行所述利用所述用户标识、所述第二目标数据的第二层次信息及所述数据类型在所述授权匹配关系库中进行前缀匹配计算,包括:
对所述第二层次信息进行深度遍历,获取当前深度的元素标识,并定义第二授权信息;
利用所述用户标识查询所述授权匹配关系库,若所述第二授权信息存在于所述用户在所述数据类型的当前深度的授权信息中,则确定所述用户在当前深度匹配成功;若所述第二授权信息在所述用户在所述数据类型的当前深度的授权信息为空,则确定所述用户在当前深度匹配成功;
若所述第二层次信息遍历完毕,则返回成功;若所述用户在当前深度匹配失败,则结束匹配,返回失败。
在一种示例中,所述授权匹配关系库中除根元素以外的元素以n叉树进行存储,处理器1101还用于:以预设策略对所述授权匹配关系库中的n叉树进行遍历,若n叉树中一目标层次的父元素包含所述目标层次的下一层次的所有子元素,且所述子元素的完整度标识达到预设值,则将该下一层次的所有所述子元素删除,将所述父元素的完整度标识为所述预设值。
示例性的,上述电子设备可以是计算机、笔记本电脑、平板电脑、掌上电脑、服务器等设备。电子设备可包括但不仅限于处理器1101、输入设备1102、输出设备1103以及计算机存储介质1104。本领域技术人员可以理解,所述示意图仅仅是电子设备的示例,并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
需要说明的是,由于电子设备的处理器1101执行计算机程序时实现上述的数据权限匹配方法中的步骤,因此上述数据权限匹配方法的实施例均适用于该电子设备,且均能达到相同或相似的有益效果。
本申请实施例还提供了一种计算机存储介质(memory),所述计算机存储介质是电子设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括终端中的内置存储介质,当然也可以包括终端所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器1101加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器1101的计算机存储介质。在一个实施例中,可由处理器1101加载并执行计算机存储介质中存放的一条或多条指令,以实现上述有关数据权限匹配方法的相应步骤。
示例性的,计算机存储介质的计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。
需要说明的是,由于计算机存储介质的计算机程序被处理器执行时实现上述的数据权限匹配方法中的步骤,因此上述数据权限匹配方法的所有例均适用于该计算机可读存储介质,且均能达到相同或相似的有益效果。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
1.一种数据权限匹配方法,其特征在于,所述方法包括:
接收用户的数据访问请求,解析所述数据访问请求得到所述用户的用户标识和待访问的数据类型;
利用所述用户标识、所述数据类型及授权匹配关系库进行包含匹配计算,得到第一结果集;
利用所述用户标识、所述第一结果集及所述授权匹配关系库进行排除匹配计算,得到所述用户具备访问权限的第二结果集。
2.根据权利要求1所述的方法,其特征在于,所述利用所述用户标识、所述数据类型及授权匹配关系库进行包含匹配计算,得到第一结果集,包括:
初始化所述第一结果集为空;
对元素信息库中属于所述数据类型的数据进行遍历,取出第一目标数据,并获取所述第一目标数据的第一层次信息;
利用所述用户标识、所述第一目标数据的第一层次信息及所述数据类型在所述授权匹配关系库中进行前缀匹配计算;
若返回为成功,则将所述第一目标数据添加到所述第一结果集中。
3.根据权利要求1所述的方法,其特征在于,所述利用所述用户标识、所述第一结果集及所述授权匹配关系库进行排除匹配计算,得到所述用户具备访问权限的第二结果集,包括:
初始化所述第二结果集为空;
对所述第一结果集中的所述第一目标数据进行遍历,取出第二目标数据,并获取所述第二目标数据的第二层次信息;
利用所述用户标识、所述第二目标数据的第二层次信息及所述数据类型在所述授权匹配关系库中进行前缀匹配计算;
若返回为失败,则将所述第二目标数据添加到所述第二结果集中。
4.根据权利要求2所述的方法,其特征在于,所述利用所述用户标识、所述第一目标数据的第一层次信息及所述数据类型在所述授权匹配关系库中进行前缀匹配计算,包括:
对所述第一层次信息进行深度遍历,获取当前深度的元素标识,并定义第一授权信息;
利用所述用户标识查询所述授权匹配关系库,若所述第一授权信息存在于所述用户在所述数据类型的当前深度的授权信息中,则确定所述用户在当前深度匹配成功;若所述第一授权信息在所述用户在所述数据类型的当前深度的授权信息为空,则确定所述用户在当前深度匹配成功;
若所述第一层次信息遍历完毕,则返回成功;若所述用户在当前深度匹配失败,则结束匹配,返回失败。
5.根据权利要求3所述的方法,其特征在于,所述利用所述用户标识、所述第二目标数据的第二层次信息及所述数据类型在所述授权匹配关系库中进行前缀匹配计算,包括:
对所述第二层次信息进行深度遍历,获取当前深度的元素标识,并定义第二授权信息;
利用所述用户标识查询所述授权匹配关系库,若所述第二授权信息存在于所述用户在所述数据类型的当前深度的授权信息中,则确定所述用户在当前深度匹配成功;若所述第二授权信息在所述用户在所述数据类型的当前深度的授权信息为空,则确定所述用户在当前深度匹配成功;
若所述第二层次信息遍历完毕,则返回成功;若所述用户在当前深度匹配失败,则结束匹配,返回失败。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述授权匹配关系库中除根元素以外的元素以n叉树进行存储,所述方法还包括:
以预设策略对所述授权匹配关系库中的n叉树进行遍历,若n叉树中一目标层次的父元素包含所述目标层次的下一层次的所有子元素,且所述子元素的完整度标识达到预设值,则将该下一层次的所有所述子元素删除,将所述父元素的完整度标识为所述预设值。
7.一种数据权限匹配装置,其特征在于,所述装置包括:
请求获取模块,用于接收用户的数据访问请求,解析所述数据访问请求得到所述用户的用户标识和待访问的数据类型;
第一匹配计算模块,用于利用所述用户标识、所述数据类型及授权匹配关系库进行包含匹配计算,得到第一结果集;
第二匹配计算模块,用于利用所述用户标识、所述第一结果集及所述授权匹配关系库进行排除匹配计算,得到所述用户具备访问权限的第二结果集。
8.根据权利要求7所述的装置,其特征在于,在利用所述用户标识、所述数据类型及授权匹配关系库进行包含匹配计算,得到第一结果集方面,所述第一匹配计算模块具体用于:
初始化所述第一结果集为空;
对元素信息库中属于所述数据类型的数据进行遍历,取出第一目标数据,并获取所述第一目标数据的第一层次信息;
利用所述用户标识、所述第一目标数据的第一层次信息及所述数据类型在所述授权匹配关系库中进行前缀匹配计算;
若返回为成功,则将所述第一目标数据添加到所述第一结果集中。
9.一种电子设备,包括输入设备和输出设备,其特征在于,还包括:
处理器,适于实现一条或多条指令;以及,
计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行如权利要求1-6任一项所述的方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行如权利要求1-6任一项所述的方法。
技术总结