CN111563250A - 权限管理方法、装置、计算机设备和存储介质 - Google Patents
权限管理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111563250A CN111563250A CN202010220073.7A CN202010220073A CN111563250A CN 111563250 A CN111563250 A CN 111563250A CN 202010220073 A CN202010220073 A CN 202010220073A CN 111563250 A CN111563250 A CN 111563250A
- Authority
- CN
- China
- Prior art keywords
- role
- resource
- user
- type
- determining
- 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
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/45—Structures or tools for the administration of 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
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)
Abstract
本申请涉及业务过程优化,通过角色对应的资源数据量确定角色对应的线程数量,由多个线程确定目标用户对应的用户资源表并获取资源权限,解决了数据倾斜问题,提高了用户的体验度。尤其涉及一种权限管理方法、装置、计算机设备和存储介质,该权限管理方法包括:获取资源信息,根据资源信息确定资源角色表;确定目标用户,获取目标用户对应的用户角色表;根据角色对应的资源数据量,确定资源角色表中的第一类角色与第二类角色,确定第一类角色和第二类角色各自对应的线程数量;基于第一类角色和第二类角色各自对应的线程数量,根据用户角色表与资源角色表确定目标用户对应的用户资源表;将用户资源表中的资源权限开放给目标用户。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种权限管理方法、装置、计算机设备和存储介质。
背景技术
随着人工智能技术的发展,为提高用户体验,越来越多的企业开始为用户提供个性化的服务。现有的大部分个性化服务系统在资源权限的数据处理过程中,通常忽略了由于数据分布不均匀导致数据倾斜的问题,导致产生计算异常和降低系统的效率的问题,大大降低了用户体验,失去了个性化服务的意义。
发明内容
本申请提供了一种权限管理方法、装置、计算机设备和存储介质,可以解决了资源权限获取过程中的数据倾斜问题,提高了用户的体验度。
第一方面,本申请提供了一种权限管理方法,所述方法包括:
获取资源信息,根据所述资源信息确定资源角色表,所述资源角色表包括至少一个角色;
确定目标用户,获取所述目标用户对应的用户角色表,所述用户角色表包括至少一个角色;
根据角色对应的资源数据量,确定所述资源角色表中的第一类角色与第二类角色,确定所述第一类角色和所述第二类角色各自对应的线程数量;
基于所述第一类角色和所述第二类角色各自对应的线程数量,根据所述用户角色表与所述资源角色表确定所述目标用户对应的用户资源表;
将所述用户资源表中的资源权限开放给所述目标用户。
第二方面,本申请还提供了一种权限管理装置,所述装置包括:
资源信息获取模块,用于获取资源数据信息,根据所述资源数据信息确定资源角色表,所述资源角色表包括至少一个角色;
用户角色表获取模块,用于确定目标用户,获取所述目标用户对应的用户角色表,所述用户角色表包括至少一个角色;
角色类别确定模块,用于根据角色对应的资源数据量,确定所述资源角色表中的第一类角色与第二类角色,确定所述第一类角色和所述第二类角色各自对应的线程数量;
用户资源表确定模块,用于基于所述第一类角色和所述第二类角色各自对应的线程数量,根据所述用户角色表与所述资源角色表确定所述目标用户对应的用户资源表;
资源权限开放模块,用于将所述用户资源表中的资源权限开放给所述目标用户。
第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的权限管理方法。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的权限管理方法。
本申请公开了一种权限管理方法、装置、计算机设备和存储介质,通过获取资源信息,可以根据资源信息确定资源角色表;通过确定目标用户,可以获取目标用户对应的用户角色表;通过根据角色对应的资源数据量,可以将资源角色表中的角色分成第一类角色与第二类角色,确定第一类角色和第二类角色各自对应的线程数量,对资源数据量过大的角色可以使用更多的线程进行处理,可以有效地避免处理过程出现异常;通过基于第一类角色和第二类角色各自对应的线程数量,根据用户角色表与资源角色表确定目标用户对应的用户资源表,解决了资源权限获取过程中的数据倾斜问题,可以达到高效的权限过滤效果;将用户资源表中的资源权限开放给目标用户,可以实现目标用户获取有权限的资源,为目标用户提供个性化服务,提高了目标用户的体验度。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的实施例提供的一种权限管理方法的示意流程图;
图2是本申请的实施例提供的资源信息对应的资源角色表的示意图;
图3是本申请的另一实施例提供的资源信息对应的资源角色表的示意图;
图4是本申请的实施例提供的目标用户对应的用户角色表的示意图;
图5是本申请的实施例提供的存在相同的第一类角色的示意图;
图6为图1中确定目标用户对应的用户资源表的子步骤流程图;
图7是本申请的实施例提供的存在相同的第二类角色的示意图;
图8为本申请实施例提供的一种权限管理装置的示意性框图;
图9为本申请实施例提供的一种计算机设备的结构示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本申请的实施例提供了一种权限管理方法、装置、计算机设备和存储介质。其中,该权限管理方法可以应用于服务器或终端中,可以根据角色对应的资源数据量确定角色对应的线程数量,由多个线程确定目标用户对应的用户资源表并获取资源权限,解决了资源权限获取过程中的数据倾斜问题,提高了用户的体验度。
示例性的,所述服务器可以为独立的服务器,也可以为服务器集群。所述终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等电子设备。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
如图1所示,权限管理方法包括步骤S10至步骤S50。
步骤S10、获取资源信息,根据所述资源信息确定资源角色表,所述资源角色表包括至少一个角色。
具体地,通过权限管理系统获取资源信息,其中所述资源信息包括不同资源对应的资源标识。
示例性的,所述资源标识可以是0000、0001、0002等。所述资源可以包括资源A、资源B、资源C等。比如资源A对应的资源标识为0000,资源B对应的资源标识为0001,资源C对应的资源标识为0002。
需要说明的是,所述权限管理系统运行在服务器或终端中,服务器或终端可以获取所述权限管理系统中存储的资源信息。其中,所述资源标识用于将资源与资源对应的角色进行关联,得到资源对应的资源角色表。
具体地,根据所述资源信息中的不同资源对应的资源标识进行查询,得到所述资源信息对应的资源角色表。
在一些实施例中,如图2所示,图2是资源信息对应的资源角色表的示意图。若所述资源信息包括资源A,且资源A对应的资源标识为0000;根据资源标识0000从所述权限管理系统的数据库中查询与所述资源标识0000对应的角色,得到所述资源标识0000对应的至少一个角色。例如,角色G1、角色G2。然后可以根据该资源标识0000,将所述资源A与所述资源A对应的角色G1、角色G2进行关联,生成所述资源信息对应的资源角色表{A(G1,G2)}。
需要说明的是,所述资源信息包括多个资源对应的资源标识,在根据所述资源标识进行查询时,得到资源角色表包括多个资源。所述资源角色表可以包括具有不同角色的资源,也可以包括具有不同角色的不同资源。
在另一些实施例中,如图3所示,图3是资源信息对应的资源角色表的示意图。若所述资源信息除了包括资源A对应的资源标识为0000,还包括资源B对应的资源标识为0001;则可以根据资源标识0001查询并确定资源B对应的角色包括角色H1和角色H2。因此,根据资源A对应的资源标识为0000和资源B对应的资源标识为0001可以确定所述资源信息对应的资源角色表为{A(G1,G2),B(H1,H2)}。
可以理解的是,在资源角色表中,资源对该资源对应的角色开放权限。示例性的,资源A对角色G1、角色G2开放权限;而不属于该资源A的角色,对资源A没有权限,例如角色H1对资源A没有权限。
通过根据资源信息可以确定资源角色表,在资源角色表中,可以将资源的权限开放给具有相同角色的用户。
步骤S20、确定目标用户,获取所述目标用户对应的用户角色表,所述用户角色表包括至少一个角色。
具体地,通过终端获取目标用户以及所述目标用户对应的用户标识;然后根据所述用户标识将所述目标用户与所述用户标识对应的角色进行关联,得到所述目标用户对应的用户角色表。
其中,所述用户标识可以包括目标用户的姓名、身份证号、手机号、终端设备账号或终端ID等。
在一些实施例中,若监测到有用户通过终端登陆所述权限管理系统时,将所述终端对应的用户标记为目标用户;然后通过终端中的前端埋点采集所述目标用户输入的数据,例如所述目标用户输入的姓名、终端ID或身份证号等身份标识。
具体地,在获取目标用户以及所述目标用户对应的用户标识之后,根据所述用户标识将所述目标用户与所述用户标识对应的角色进行关联,得到所述目标用户对应的用户角色表。
其中,所述用户角色表包括具有不同角色的目标用户。
在一些实施例中,如图4所示,图4是所述目标用户对应的用户角色表的示意图。根据所述用户标识从所述权限管理系统的数据库中查询所述用户标识对应的角色,得到所述用户标识对应的至少一个角色,例如角色G1、角色H1和角色H2。由于所述用户标识与所述目标用户P一一对应,因此可以将用户标识对应的角色作为所述目标用户P对应的角色。将角色G1、角色H1和角色H2与所述目标用户P进行关联,得到所述目标用户P对应的用户角色表P(G1,H1,H2)。
可以理解的是,在所述用户角色表中,用户拥有与所属角色对应的资源的权限。示例性的,若资源角色表为{A(G1,G2)},目标用户P对应的用户角色表为P(G1,H1,H2);其中,角色G1对资源A有权限,所述目标用户P可以通过角色G1获取资源A,但不能通过角色H1获取资源A。
通过根据目标用户对应的用户标识确定目标用户对应的用户角色表,目标用户可以通过用户角色表中的角色获取角色对应的资源的权限,可以实现对目标用户的个性化服务。
需要说明的是,在权限管理系统中,若资源为公开资源,则目标用户不需要权限就可以获取该资源;若资源为非公开资源,则目标用户需要拥有该资源的权限才可以获取该资源。目标用户是否对资源有权限,可以通过判断用户角色表与资源角色表之间是否有相同的角色。
步骤S30、根据角色对应的资源数据量,确定所述资源角色表中的第一类角色与第二类角色,确定所述第一类角色和所述第二类角色各自对应的线程数量。
需要说明的是,在所述资源角色表中,不同角色对应的资源数据量是不同的。例如,角色G1对应的资源数据量为8000条,角色G2对应的资源数据量为12000条。
示例性的,确定所述资源角色表中的第一类角色与第二类角色,可以基于所述资源角色表中各角色对应的资源数据量,根据预设的数据阈值将所述资源角色表中的角色进行分类,得到第一类角色和第二类角色。
需要说明的是,在所述权限管理系统中,所述预设的数据阈值用于监控角色对应的资源数据量。所述预设的数据阈值可以在所述权限管理系统中根据实际应用进行设定,其具体数值,在此不做限定。
示例性的,基于Spark计算引擎,可以获取所述资源角色表中各角色对应的资源数据量。
需要说明的是,Spark计算引擎是Spark core API的扩展,支持实时数据流的处理,并且具有可扩展,高吞吐量,容错的特点。示例性的,可以通过Kafka、Flume、Kinesis或TCP sockets等中间件获取数据,通过Spark计算引擎使用复杂的算法进行数据处理,例如使用map、reduce、join或window等算法处理;最后,处理后的数据可以推送到文件系统、数据库等。
在一些实施例中,可以先通过Spark计算引擎获取所述资源角色表中的角色对应的资源数据量,然后将所述资源数据量小于或等于所述预设的数据阈值的角色标记为第一类角色,最后将所述资源数据量大于所述预设的数据阈值的角色标记为第二类角色;实现根据所述预设的数据阈值将所述资源角色表中的角色进行分类,从而确定所述资源角色表中的第一类角色与第二类角色。
示例性的,若资源角色表{A(G1,G2)}中的角色G1对应的资源数据量小于所述预设的数据阈值,角色G2对应的资源数据量大于所述预设的数据阈值,则将角色G1标记为第一类角色,将角色G2标记为第二类角色。
可以理解的是,若存在资源数据量大于所述预设的数据阈值的角色,在根据角色将所述目标用户与所述资源角色表中的资源进行关联时,会出现数据分布不均匀,产生数据倾斜问题,导致在计算过程中出现异常。
通过根据预设的数据阈值对角色对应的资源数据量进行判断,将所述资源角色表中的角色分成第一类角色和第二类角色,对资源数据量过大的角色可以使用更多的线程进行处理,可以有效地避免处理过程出现异常。
在一些实施例中,在确定所述第一类角色和所述第二类角色各自对应的线程数量时,可以根据所述预设的数据阈值对应的线程数量,确定所述第一类角色对应的线程数量;然后基于所述预设的数据阈值对应的线程数量,根据所述第二类角色对应的资源数据量,确定所述第二类角色对应的线程数量。
其中,所述预设的数据阈值对应一个线程;所述第二类角色对应至少两个线程。
由于所述预设的数据阈值对应一个线程,因此可以确定所述第一类角色对应的线程也为一个。可以理解的是,所述第一类角色对应的资源数据量小于所述预设的数据阈值,因此只需要一个线程就可以处理所述第一类角色对应的资源数据量。所述第二类角色对应的资源数据量大于所述预设的数据阈值,因此需要至少两个线程处理所述第二类角色对应的资源数据量。所述第二类角色对应的线程数量可以根据所述第二类角色对应的资源数据量与所述预设的数据阈值之间的倍数进行确定。
示例性的,将所述第二类角色对应的资源数据量记为N,线程数据为n,所述预设的数据阈值为μ,则可以根据确定所述第二类角色对应的线程数量。例如,若所述第二类角色对应的资源数据量N为12000条,所述预设的数据阈值μ为10000条,则需要2个线程。若所述第二类角色对应的资源数据量N为25000条,则需要3个线程。
步骤S40、基于所述第一类角色和所述第二类角色各自对应的线程数量,根据所述用户角色表与所述资源角色表确定所述目标用户对应的用户资源表。
示例性的,所述第一类角色对应于一个线程,所述第二类角色对应于多个线程。
在一些实施例中,若所述资源角色表中的角色为第一类角色,则根据所述第一类角色对应的一个线程对所述用户角色表与所述资源角色表进行取交集,得到所述目标用户对应的用户资源表。若所述资源角色表中的角色为第二类角色,则根据所述第二类角色对应的多个线程对所述用户角色表与所述资源角色表进行取交集,得到所述目标用户对应的用户资源表。
需要说明的是,所述取交集是指将同一角色对应的用户与资源进行关联,生成用户资源表。其中,所述用户资源表包括所述目标用户对应的至少一个资源。
具体地,可以根据所述第一类角色和所述第二类角色各对应的线程数量,确定将所述用户角色表与所述资源角色表进行取交集的过程需要线程的数量并生成任务指令,然后可以将所述任务指令分发到对应数量的线程中。
其中,所述线程负责任务的执行;所述任务指令包括执行任务的线程数量。
具体地,基于所述第一类角色和所述第二类角色各自对应的线程数量,根据所述用户角色表与所述资源角色表确定所述目标用户对应的用户资源表,包括以下以下内容:
根据所述第一类角色对应的一个线程对所述用户角色表与所述资源角色表进行取交集,得到所述目标用户对应的用户资源表。
在一些实施例中,若所述资源角色表中的角色为第一类角色,说明所述用户角色表与所述资源角色表进行取交集需要1个线程完成,则生成任务指令并向线程A发送任务指令;线程A可以接收到所述任务指令。所述任务指令包括该任务指令对应的线程数量,例如线程A接收到的任务指令包括“所述任务指令对应有一个线程”的信息。
具体地,所述线程A根据所述任务指令,对所述用户角色表与所述资源角色表进行取交集,得到所述目标用户对应的用户资源表。
示例性的,所述线程判断所述用户角色表中是否存在与所述第一类角色一致的角色;若所述用户角色表中存在与所述第一类角色一致的角色,则将所述角色对应的目标用户与所述第一类角色对应的资源进行关联,得到所述目标用户对应的用户资源表。
在本实施例中,如图5所示,图5是所述用户角色表和所述资源角色表中存在相同的第一类角色的示意图。若所述用户角色表为P(G1,H1,H2),所述资源角色表为A(G1,G2),其中角色G1对应的数据量为小于所述预设的数据阈值,所述角色G1为第一类角色;则判定所述用户角色表P(G1,H1,H2)中存在与所述第一类角色一致的角色G1,将所述第一类角色G1对应的资源A与目标用户P进行关联,得到所述目标用户P对应的用户资源表<P,A>。
其中,所述用户资源表包括所述目标用户有权限的所有资源。示例性的,若所述目标用户P还与资源B关联,则所述用户资源表为<P,A,B>。
对于资源数据量较小的第一类角色,通过根据第一类角色对应的一个线程对所述用户角色表与所述资源角色表进行取交集,得到所述目标用户对应的用户资源表,提高了系统的运行效率。
根据所述第二类角色对应的多个线程对所述用户角色表与所述资源角色表进行取交集,得到所述目标用户对应的用户资源表。
可以理解的,由于所述第一类角色和所述第二类角色对应的资源数据量分布不均匀,在根据所述用户角色表与所述资源角色表进行取交集过程中,花费的时间较长,容易出现数据倾斜问题,导致处理异常。因此基于所述第二类角色进行取交集时,需要多个线程共同处理,可以避免出现数据倾斜问题。
在一些实施例中,若所述资源角色表中的角色为第二类角色且所述第二类角色对应的资源数据量N为12000条,则确定所述用户角色表与所述资源角色表进行取交集需要两个线程完成,生成任务指令并向线程A、线程B发送所述任务指令。线程A、线程B均可以接收到所述任务指令。
其中,所述任务指令包括该任务指令对应的线程总数,例如线程A、线程B均接收到的任务指令包括“所述任务指令对应有两个线程”的信息。
通过确定多个线程对所述用户角色表与所述资源角色表进行取交集,得到所述目标用户对应的用户资源表,可以避免处理过程出现异常,提高了系统的运行效率。
请参阅图6,根据所述第二类角色对应的多个线程对所述用户角色表与所述资源角色表进行取交集,得到所述目标用户对应的用户资源表,包括以下步骤S41至步骤S43。
步骤S41、根据所述第二类角色对应的线程的数量将所述第二类角色的键值按照数据量分成多个键值组合,得到所述第二类角色对应的键值组合。
在一些实施例中,根据所述第二类角色对应的线程的个数,将所述第二类角色的键值按照数据量分配成多个键值组合,得到所述第二类角色对应的键值组合,其中各所述键值组合对应的数据量总和相同。
具体地,获取所述资源角色表中的所述第二类角色对应的键值。示例性的,若所述第二类角色对应的键值为{a,b,c,d,e,f},各键值对应的数据量为4000条、1500条、1000条、3500条、500条、2500条。其中,各键值对应的数据量的总和等于所述第二类角色对应的资源数据量。
具体地,将所述键值组合中各键值对应的数据量相加,得到所述键值组合对应的数据量总和。例如所述键值组合对应的数据量总和为∑dn,如12000条,则k个键值组合对应的数据量应为∑dn/k。其中,dn为各键值对应的数据量,任务指令对应的线程数量为k。
在本实施例中,所述线程按照线程的个数将所述键值按照数据量分成多个键值组合,以使各键值组合对应的数据量大致相同。示例性的,若任务指令对应的线程数量为2,则各键值组合对应的数据量为6000条。所述线程将键值a,b,e分入第一个键值组合,将键值c,d,f分入第二个键值组合;两个键值组合对应的数据量均为6000条。
根据第二类角色中各键值对应的数据量,将所有的键值分配至多个键值组合,以使各键值组合对应的数据量大致相同,用于处理第二类角色的数据量较大的场景。由于第二类角色的数据均匀分给不同的线程处理,不同的线程处理键值组合时所需的资源和时间较为一致,避免出现某一线程所需的资源和时间明显偏多的情形。
步骤S42、确定所述多个键值组合中的一个为目标键值组合,根据所述目标键值组合确定所述用户角色表中是否存在与所述第二类角色一致的角色。
具体地,所述线程对所述多个键值组合进行编号,得到所述多个键值组合各自对应的第一编号。
示例性的,若有2个键值组合,所述线程对这2个键值组合进行编号,得到这2个键值组合各自对应的第一编号。例如,所述第一编号可以包括1、2。编号后得到键值组合1、键值组合2。
具体地,所述线程根据所述第二类角色对应的线程的数量确定所述多个线程对应的第二编号。
示例性的,若所述第二类角色对应的线程的数量为2,则可以确定所述多个线程对应的第二编号。例如第二编号可以包括1、2。编号后得到线程1、线程2。
在另一些实施例中,还可以根据所述任务指令确定所述线程对应的第二编号。
示例性的,若所述任务指令对应的线程数量为2,则可以根据所述任务指令对应的线程数量确定所述多个线程对应的第二编号。例如第二编号可以包括1、2。编号后得到线程1、线程2。
具体地,将所述第一编号与所述线程对应的第二编号相同的键值组合作为目标键值组合。
在一些实施例中,各所述线程将所述第一编号与自身的第二编号相同的键值组合作为目标键值组合。
示例性的,键值组合1对应的第一编号与线程1的第二编号相同,则线程1将键值组合1作为目标键值组合;键值组合2对应的第一编号与线程2的第二编号相同,则线程2将键值组合2作为目标键值组合。
具体地,所述线程处理所述目标键值组合,将所述目标键值组合与所述用户角色表中的角色对应的键值进行比较,若所述用户角色表中存在与所述多个目标键值组合一致的键值,则判定所述用户角色表中存在与所述第二类角色一致的角色。若所述用户角色表中不存在与所述多个目标键值组合一致的键值,则判定所述用户角色表中不存在与所述第二类角色一致的角色。
步骤S43、若所述用户角色表中存在与所述第二类角色一致的角色,将所述角色对应的目标用户与所述第二类角色对应的资源进行关联,得到所述目标用户对应的用户资源表。
具体地,若所述用户角色表中存在与所述第二类角色一致的角色,则所述线程将所述角色对应的目标用户与所述第二类角色对应的资源进行关联,得到所述目标用户对应的用户资源表。
在一些实施例中,如图7所示,图7是所述用户角色表和所述资源角色表中存在相同第二类角色的示意图。若所述资源角色表B(G1,G2,H2),其中角色H2对应的资源数据量大于所述预设的数据阈值,所述角色H2为第二类角色且所述用户角色表为P(G1,H1,H2),则可以确定所述用户角色表P(G1,H1,H2)中存在与所述第二类角色H2一致的角色H2,将所述角色H2对应的目标用户P与所述第二类角色H2对应的资源B进行关联,得到所述目标用户P对应的用户资源表<P,B>。
可以理解的,将目标用户与资源进行关联的过程,即是进行权限过滤的过程。在关联得到的用户资源表中,目标用户对用户资源表中的资源有权限;不在用户资源表中的资源,目标用户没有权限。
通过将数据量较大的第二类角色的处理过程分配给多个线程,得到所述目标用户对应的用户资源表;可以确保在数据量较大的情况下,系统不会出现处理异常的情况,可以达到高效的权限过滤效果。
步骤S50、将所述用户资源表中的资源权限开放给所述目标用户。
需要说明的是,所述用户资源表包括所述目标用户有权限的所有资源。
在一些实施例中,若所述目标用户P对应的用户资源表为<P,B>,则表示所述目标用户P对资源B有权限,因此可以将所述资源B开放给所述目标用户P;所述目标用户P可以获取所述资源B的权限。示例性的,所述目标用户P可以查看资源B、修改资源B、使用资源B等。
通过将用户资源表中的资源权限开放给目标用户,可以实现目标用户获取有权限的资源,可以提供个性化服务,提高了目标用户的体验度。
上述实施例提供的权限管理方法,通过根据资源信息中的不同资源对应的资源标识进行查询,可以得到资源信息对应的资源角色表;通过根据预设的资源阈值,可以将资源角色表中的角色分成第一类角色与第二类角色,并确定第一类角色和第二类角色各自对应的线程数量,对资源数据量过大的角色可以使用更多的线程进行处理,可以有效地避免处理过程出现异常;通过根据第二类角色对应的多个线程对用户角色表与资源角色表进行取交集,解决了资源权限获取过程中的数据倾斜问题,避免处理过程出现异常;通过根据第二类角色对应的线程的数量将第二类角色的键值按照数据量分成多个键值组合,可以得到第二类角色对应的键值组合,进而线程可以处理键值组合,可以确保在数据量较大的情况下,系统不会出现处理异常的情况,可以达到高效的权限过滤效果。
请参阅图8,图8是本申请的实施例还提供一种权限管理装置的示意性框图,该权限管理装置用于执行前述的权限管理方法。其中,该权限管理装置可以配置于服务器或终端中。
如图8所示,该权限管理装置200,包括:资源信息获取模块201、用户角色表获取模块202、角色类别确定模块203、用户资源表确定模块204和资源权限开放模块205。
资源信息获取模块201,用于获取资源数据信息,根据所述资源数据信息确定资源角色表,所述资源角色表包括至少一个角色。
用户角色表获取模块202,用于确定目标用户,获取所述目标用户对应的用户角色表,所述用户角色表包括至少一个角色。
角色类别确定模块203,用于根据角色对应的资源数据量,确定所述资源角色表中的第一类角色与第二类角色,确定所述第一类角色和所述第二类角色各自对应的线程数量。
用户资源表确定模块204,用于基于所述第一类角色和所述第二类角色各自对应的线程数量,根据所述用户角色表与所述资源角色表确定所述目标用户对应的用户资源表。
资源权限开放模块205,用于将所述用户资源表中的资源权限开放给所述目标用户。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和各模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
上述的装置可以实现为一种计算机程序的形式,该计算机程序可以在如图9所示的计算机设备上运行。
请参阅图9,图9是本申请实施例提供的一种计算机设备的结构示意性框图。该计算机设备可以是服务器。
请参阅图9,该计算机设备包括通过系统总线连接的处理器和存储器,其中,存储器可以包括非易失性存储介质和内存储器。
处理器用于提供计算和控制能力,支撑整个计算机设备的运行。
内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种权限管理方法。
应当理解的是,处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
获取资源信息,根据所述资源信息确定资源角色表,所述资源角色表包括至少一个角色;确定目标用户,获取所述目标用户对应的用户角色表,所述用户角色表包括至少一个角色;根据角色对应的资源数据量,确定所述资源角色表中的第一类角色与第二类角色,确定所述第一类角色和所述第二类角色各自对应的线程数量;基于所述第一类角色和所述第二类角色各自对应的线程数量,根据所述用户角色表与所述资源角色表确定所述目标用户对应的用户资源表;将所述用户资源表中的资源权限开放给所述目标用户。
在一个实施例中,所述资源信息包括不同资源对应的资源标识,所述处理器在实现根据所述资源信息确定资源角色表时,用于实现:
根据所述资源信息中的不同资源对应的资源标识进行查询,得到所述资源信息对应的资源角色表。
在一个实施例中,所述处理器在实现根据角色对应的资源数据量,确定所述资源角色表中的第一类角色与第二类角色时,用于实现:
获取所述资源角色表中的角色对应的资源数据量;将所述资源数据量小于或等于预设的数据阈值的角色标记为第一类角色;将所述资源数据量大于预设的数据阈值的角色标记为第二类角色。
在一个实施例中,所述处理器在实现确定所述第一类角色和所述第二类角色各自对应的线程数量时,用于实现:
根据所述预设的数据阈值对应的线程数量,确定所述第一类角色对应的线程数量,其中所述预设的数据阈值对应一个线程;基于所述预设的数据阈值对应的线程数量,根据所述第二类角色对应的资源数据量,确定所述第二类角色对应的线程数量,其中所述第二类角色对应至少两个线程。
在一个实施例中,所述处理器在实现基于所述第一类角色和所述第二类角色各自对应的线程数量,根据所述用户角色表与所述资源角色表确定所述目标用户对应的用户资源表时,用于实现:
根据所述第一类角色对应的一个线程对所述用户角色表与所述资源角色表进行取交集,得到所述目标用户对应的用户资源表;或者根据所述第二类角色对应的多个线程对所述用户角色表与所述资源角色表进行取交集,得到所述目标用户对应的用户资源表。
在一个实施例中,所述处理器在实现根据所述第二类角色对应的多个线程对所述用户角色表与所述资源角色表进行取交集,得到所述目标用户对应的用户资源表时,用于实现:
根据所述第二类角色对应的线程的数量将所述第二类角色的键值按照数据量分成多个键值组合,得到所述第二类角色对应的键值组合;确定所述多个键值组合中的一个为目标键值组合,根据所述目标键值组合确定所述用户角色表中是否存在与所述第二类角色一致的角色;若所述用户角色表中存在与所述第二类角色一致的角色,将所述角色对应的目标用户与所述第二类角色对应的资源进行关联,得到所述目标用户对应的用户资源表。
在一个实施例中,所述处理器在实现确定所述多个键值组合中的一个为目标键值组合时,用于实现:
对所述多个键值组合进行编号,得到所述多个键值组合各自对应的第一编号;根据所述第二类角色对应的线程的数量确定所述多个线程对应的第二编号;将所述第一编号与所述线程的第二编号相同的键值组合作为目标键值组合。
本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本申请实施例提供的任一项权限管理方法。
其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字卡(Secure Digital Card,SD Card),闪存卡(Flash Card)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种权限管理方法,其特征在于,包括:
获取资源信息,根据所述资源信息确定资源角色表,所述资源角色表包括至少一个角色;
确定目标用户,获取所述目标用户对应的用户角色表,所述用户角色表包括至少一个角色;
根据角色对应的资源数据量,确定所述资源角色表中的第一类角色与第二类角色,确定所述第一类角色和所述第二类角色各自对应的线程数量;
基于所述第一类角色和所述第二类角色各自对应的线程数量,根据所述用户角色表与所述资源角色表确定所述目标用户对应的用户资源表;
将所述用户资源表中的资源权限开放给所述目标用户。
2.根据权利要求1所述的权限管理方法,其特征在于,所述资源信息包括不同资源对应的资源标识;
所述根据所述资源信息确定资源角色表,包括:
根据所述资源信息中的不同资源对应的资源标识进行查询,得到所述资源信息对应的资源角色表。
3.根据权利要求1中所述的权限管理方法,其特征在于,所述根据角色对应的资源数据量,确定所述资源角色表中的第一类角色与第二类角色,包括:
获取所述资源角色表中的角色对应的资源数据量;
将所述资源数据量小于或等于预设的数据阈值的角色标记为第一类角色;
将所述资源数据量大于预设的数据阈值的角色标记为第二类角色。
4.根据权利要求3所述的权限管理方法,其特征在于,所述确定所述第一类角色和所述第二类角色各自对应的线程数量,包括:
根据所述预设的数据阈值对应的线程数量,确定所述第一类角色对应的线程数量,其中所述预设的数据阈值对应一个线程;
基于所述预设的数据阈值对应的线程数量,根据所述第二类角色对应的资源数据量,确定所述第二类角色对应的线程数量,其中所述第二类角色对应至少两个线程。
5.根据权利要求1-4任一项所述的权限管理方法,其特征在于,所述基于所述第一类角色和所述第二类角色各自对应的线程数量,根据所述用户角色表与所述资源角色表确定所述目标用户对应的用户资源表,包括:
根据所述第一类角色对应的一个线程对所述用户角色表与所述资源角色表进行取交集,得到所述目标用户对应的用户资源表;或者
根据所述第二类角色对应的多个线程对所述用户角色表与所述资源角色表进行取交集,得到所述目标用户对应的用户资源表。
6.根据权利要求5中所述的权限管理方法,其特征在于,所述根据所述第二类角色对应的多个线程对所述用户角色表与所述资源角色表进行取交集,得到所述目标用户对应的用户资源表,包括:
根据所述第二类角色对应的线程的数量将所述第二类角色的键值按照数据量分成多个键值组合,得到所述第二类角色对应的键值组合;
确定所述多个键值组合中的一个为目标键值组合,根据所述目标键值组合确定所述用户角色表中是否存在与所述第二类角色一致的角色;
若所述用户角色表中存在与所述第二类角色一致的角色,将所述角色对应的目标用户与所述第二类角色对应的资源进行关联,得到所述目标用户对应的用户资源表。
7.根据权利要求6中所述的权限管理方法,其特征在于,所述确定所述多个键值组合中的一个为目标键值组合,包括:
对所述多个键值组合进行编号,得到所述多个键值组合各自对应的第一编号;
根据所述第二类角色对应的线程的数量确定所述多个线程对应的第二编号;
将所述第一编号与所述线程的第二编号相同的键值组合作为目标键值组合。
8.一种权限管理装置,其特征在于,包括:
资源信息获取模块,用于获取资源数据信息,根据所述资源数据信息确定资源角色表,所述资源角色表包括至少一个角色;
用户角色表获取模块,用于确定目标用户,获取所述目标用户对应的用户角色表,所述用户角色表包括至少一个角色;
角色类别确定模块,用于根据角色对应的资源数据量,确定所述资源角色表中的第一类角色与第二类角色,确定所述第一类角色和所述第二类角色各自对应的线程数量;
用户资源表确定模块,用于基于所述第一类角色和所述第二类角色各自对应的线程数量,根据所述用户角色表与所述资源角色表确定所述目标用户对应的用户资源表;
资源权限开放模块,用于将所述用户资源表中的资源权限开放给所述目标用户。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如权利要求1至7中任一项所述的权限管理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如权利要求1至7中任一项所述的权限管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010220073.7A CN111563250A (zh) | 2020-03-25 | 2020-03-25 | 权限管理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010220073.7A CN111563250A (zh) | 2020-03-25 | 2020-03-25 | 权限管理方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111563250A true CN111563250A (zh) | 2020-08-21 |
Family
ID=72068928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010220073.7A Pending CN111563250A (zh) | 2020-03-25 | 2020-03-25 | 权限管理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111563250A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112906028A (zh) * | 2021-03-04 | 2021-06-04 | 广州虎牙科技有限公司 | 访问控制方法、装置、电子设备及计算机可读存储介质 |
-
2020
- 2020-03-25 CN CN202010220073.7A patent/CN111563250A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112906028A (zh) * | 2021-03-04 | 2021-06-04 | 广州虎牙科技有限公司 | 访问控制方法、装置、电子设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108462760B (zh) | 电子装置、集群访问域名自动生成方法及存储介质 | |
CN109409121B (zh) | 脱敏处理方法、装置和服务器 | |
CN108459913B (zh) | 数据并行处理方法、装置及服务器 | |
CN109067841B (zh) | 基于ZooKeeper的服务限流方法、系统、服务器及存储介质 | |
CN109672888B (zh) | 图片压缩方法、设备及计算机可读存储介质 | |
WO2019196239A1 (zh) | 一种线程接口的管理方法、终端设备及计算机可读存储介质 | |
CN109446225B (zh) | 数据缓存方法、装置、计算机设备及存储介质 | |
CN111199028A (zh) | 资源信息访问方法、装置、计算机设备和存储介质 | |
US11880703B2 (en) | Optimization of multi-layered images | |
CN111767144A (zh) | 交易数据的交易路由确定方法、装置、设备及系统 | |
CN111177113A (zh) | 数据迁移方法、装置、计算机设备和存储介质 | |
CN111885184A (zh) | 高并发场景下热点访问关键字处理方法和装置 | |
CN113590433B (zh) | 数据管理方法、数据管理系统和计算机可读存储介质 | |
CN109885384B (zh) | 任务并行度优化方法、装置、计算机设备及存储介质 | |
CN109165135B (zh) | 一种数据管理方法、计算机可读存储介质及终端设备 | |
CN111563250A (zh) | 权限管理方法、装置、计算机设备和存储介质 | |
CN109918277A (zh) | 电子装置、系统日志聚类分析结果的评价方法及存储介质 | |
CN108733536B (zh) | 监控管理系统及方法 | |
US10310857B2 (en) | Systems and methods facilitating multi-word atomic operation support for system on chip environments | |
CN114238349A (zh) | 数据校验方法、装置、设备及介质 | |
CN113392131A (zh) | 数据处理方法、装置及计算机设备 | |
CN110928572A (zh) | 接口调用与业务系统分离方法、系统和计算机设备 | |
CN111241099A (zh) | 一种工业大数据存储方法及装置 | |
CN116186046B (zh) | 设备数据的修改方法、装置、计算机设备及存储介质 | |
CN117453759B (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 |