技术简介:
本专利针对传统备份系统权限管理粗放、难以适配多业务场景的问题,提出基于资源分层与虚拟组节点的权限控制方法。通过构建树状资源层级结构,结合虚拟组节点按业务规范聚合资源实例,实现从父节点到子节点的权限逐级传导与覆盖。创新性引入多层级授权判断逻辑,支持用户、用户组、父节点的多维度权限匹配,最终在目标资源层级结构中完成精准授权,显著提升权限管理的灵活性与细粒度。
关键词:资源分层,权限管理
1.本发明涉及备份系统管理技术领域,具体而言,涉及一种基于资源分层的备份系统权限管理方法及系统。
背景技术:2.在备份系统中,用户希望可以在不同的租户或者用户组(多个用户的集合)之间进行系统资源的隔离,这种隔离可以是逻辑上的隔离,例如,不同的用户组使用了相同的存储资源,各自仅能看到和使用自己的数据,也可以是物理上的隔离,例如,不同的用户组使用不同的存储资源。具体做何种隔离,取决于用户的具体业务需求。
3.当前的备份系统(包括cdm备份系统在内)一般都会内置不同的角色,这些角色会和固定范围的资源绑定,当用户被授予该角色后,就在固定范围的资源上完成了对用户的授权操作。但是这样设计的存在着一些不足,其权限管理的粒度比较粗,资源的范围在角色定义之初就被限定,不可更改,缺乏灵活性。
技术实现要素:4.为了克服上述问题或者至少部分地解决上述问题,本发明实施例提供一种基于资源分层的备份系统权限管理方法及系统,对系统的资源进行分层,利用分层后资源的层级关系结合基于角色的权限控制在备份系统中实现了细粒度并且兼具灵活性的权限管控。
5.本发明的实施例是这样实现的:第一方面,本发明实施例提供一种基于资源分层的备份系统权限管理方法,其特征在于,包括以下步骤:获取并对备份系统的资源进行分层,并构建初始资源层级结构;获取并根据业务需求在对应的初始资源层级结构中添加虚拟组节点,通过各个虚拟组节点根据业务需求中的业务规范对资源实例进行聚合,得到目标资源层级结构;获取并根据备份系统的授权需求基于目标资源层级结构在对应的虚拟组节点中或者基于初始资源层级结构在对应的节点中判断是否将对应的资源授权给对应用户,完成权限管理。
6.基于第一方面,在本发明的一些实施例中,上述初始资源层级结构包括父节点和多个子节点,基于父节点和多个子节点嵌套生成一个树状结构。
7.基于第一方面,在本发明的一些实施例中,上述获取并根据业务需求在对应的初始资源层级结构中添加虚拟组节点,通过各个虚拟组节点根据业务需求中的业务规范对资源实例进行聚合的方法包括以下步骤:获取并根据业务需求在对应的父节点和子节点之间插入虚拟组节点;通过虚拟组节点根据业务需求中的业务规范对各个子节点的资源实例进行聚合。
8.基于第一方面,在本发明的一些实施例中,上述获取并根据备份系统的授权需求基于目标资源层级结构在对应的虚拟组节点中或者基于初始资源层级结构在对应的节点
中判断是否将对应的资源授权给对应用户,完成权限管理的方法包括以下步骤:a1、获取并根据备份系统的授权需求基于目标资源层级结构在对应的虚拟组节点中或者基于初始资源层级结构在对应的节点中判断对应用户是否在资源实例有授权,若是,则返回用户在资源实例上的所有权限,并授权给对应用户,结束;若否,则进入步骤a2;a2、判断用户是否在对应资源的父节点有对资源的授权,若是,则返回用户在资源实例上的所有权限,并授权给对应用户,结束;若否,则进入步骤a3;a3、判断对应的父节点是否是资源层级根节点,若是,则进入步骤a4;若否,则将对应的父节点作为资源节点,并返回步骤a2;a4、判断用户所在的所有用户组是否在资源实例有授权,若是,则返回用户在资源实例上的所有权限,并授权给对应用户,结束;若否,则进入步骤a5;a5、判断用户所在的所有用户组是否在资源的父节点有对资源的授权,若是,则返回用户在资源实例上的所有权限,并授权给对应用户,结束;若否,则进入步骤a6;a6、判断父节点是否是资源层级根节点,若是,则返回无权限,结束;若否,则将对应的父节点作为资源节点,并返回步骤a5。
9.基于第一方面,在本发明的一些实施例中,该基于资源分层的备份系统权限管理方法还包括以下步骤:对判断结果进行缓存,得到缓存列表。
10.基于第一方面,在本发明的一些实施例中,该基于资源分层的备份系统权限管理方法还包括以下步骤:对资源和授权的添加、更新和删除操作进行监控,并对缓存列表进行更新。
11.基于第一方面,在本发明的一些实施例中,该基于资源分层的备份系统权限管理方法还包括以下步骤:根据业务需求将对应的虚拟组节点进行嵌套。
12.第二方面,本发明实施例提供一种基于资源分层的备份系统权限管理系统,包括层级结构录入模块、虚拟组添加模块以及权限管理模块,其中:层级结构录入模块,用于获取并对备份系统的资源进行分层,并构建初始资源层级结构;虚拟组添加模块,用于获取并根据业务需求在对应的初始资源层级结构中添加虚拟组节点,通过各个虚拟组节点根据业务需求中的业务规范对资源实例进行聚合,得到目标资源层级结构;权限管理模块,用于获取并根据备份系统的授权需求基于目标资源层级结构在对应的虚拟组节点中或者基于初始资源层级结构在对应的节点中判断是否将对应的资源授权给对应用户,完成权限管理。
13.为了解决现有技术中针对备份系统的资源权限管理的粒度比较粗,资源的范围在角色定义之初就被限定,不可更改,缺乏灵活性的技术问题,本系统通过层级结构录入模块、虚拟组添加模块以及权限管理模块等多个模块的配合,结合cdm备份系统中已有的资源层结构,在资源层结构中的父子节点间插入虚拟的组节点,每个组节点按照某种业务规范对子节点的实例进行聚合,则可实现将各个业务场景变更为用户在某个虚拟组节点实例上进行授权即可。本发明将备份系统进行资源分层并将其应用于备份系统权限管理中,细化
并提出了权限在资源分层中传播和覆盖的规则,使得系统通过恰当的权限配置就可以完成客户不同粒度的权限管理需求。
14.第三方面,本技术实施例提供一种电子设备,其包括存储器,用于存储一个或多个程序;处理器。当一个或多个程序被处理器执行时,实现如上述第一方面中任一项的方法。
15.第四方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面中任一项的方法。
16.本发明实施例至少具有如下优点或有益效果:本发明实施例提供一种基于资源分层的备份系统权限管理方法及系统,解决了现有技术中针对备份系统的资源权限管理的粒度比较粗,资源的范围在角色定义之初就被限定,不可更改,缺乏灵活性的技术问题,本发明结合cdm备份系统中已有的资源层结构,在资源层结构中的父子节点间插入虚拟的组节点,每个组节点按照某种业务规范对子节点的实例进行聚合,则可实现将各个业务场景变更为用户在某个虚拟组节点实例上进行授权即可。本发明将备份系统进行资源分层并将其应用于备份系统权限管理中,细化并提出了权限在资源分层中传播和覆盖的规则,使得系统通过恰当的权限配置就可以完成客户不同粒度的权限管理需求。本发明兼具细粒度和灵活性,面对cdm备份系统客户各种各样的权限管理需求,通过进行适当的权限配置,就可以完成绝大部分客户的需求,从而显著减少了定制开发的需要,使得以标准产品的方式交付cdm备份系统成为可能。
附图说明
17.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
18.图1为本发明实施例一种基于资源分层的备份系统权限管理方法的流程图;图2为本发明实施例中资源层级结构的示意图;图3为本发明实施例中目标资源层级结构的示意图;图4为本发明实施例一种基于资源分层的备份系统权限管理方法中授权判断的流程示意图;图5为本发明实施例一种基于资源分层的备份系统权限管理系统的原理框图;图6为本发明实施例提供的一种电子设备的结构框图。
19.附图标记说明:100、层级结构录入模块;200、虚拟组添加模块;300、权限管理模块;101、存储器;102、处理器;103、通信接口。
具体实施方式
20.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
21.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护
的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
22.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
23.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
24.实施例:如图1-图4所示,第一方面,本发明实施例提供一种基于资源分层的备份系统权限管理方法,其特征在于,包括以下步骤:s1、获取并对备份系统的资源进行分层,并构建初始资源层级结构;该初始资源层级结构包括父节点和多个子节点,基于父节点和多个子节点嵌套生成一个树状结构。
25.在本发明的一些实施例中,在cdm备份系统中所有被纳管的实体和系统中定义的对象可以统称为资源。资源的层级结构反应了资源之间的聚合关系和依赖关系。如图2所示,其展示了cdm备份系统中部分资源的层级结构。每个cdm备份系统对应一个数据中心,数据中心下的资源依次分层。图2中的备份和复制策略是定义在数据中心上,意味着它们从属于数据中心,作用范围是整个数据中心。同样的客户端从属于数据中心,例如一个vmware vsphere客户端;数据对象从属于客户端,例如vmware vsphere客户端下的虚拟机;备份对象从属于数据对象,例如虚拟机经过cdm备份系统备份后产生的备份;挂载点对象从属于备份对象,例如使用虚拟机备份对象进行挂载后产生的挂载点对象。
26.从以上的示例和定义不难看出该层级结构具有以下属性:1.cdm备份系统从最顶层的数据中心开始形成一个资源层级树。
27.2.树中的每个节点是该类型资源的聚合,可能会有一个到多个。
28.3.层级树中从上到下有关联的两个资源节点中的实例之间是一对多的关系,例如一个具体的数据对象实例会有一个到多个备份对象实例。
29.以上的属性使得每个层级节点可以作为子孙节点的天然聚合节点而存在,当用户在节点上某个具体实例被授权了子孙节点的的权限后,那么该用户可以在所有的子孙节点上具有相应的权限。在这一过程中,权限非常自然的完成了在资源层级结构上父子节点间的传播。
30.s2、获取并根据业务需求在对应的初始资源层级结构中添加虚拟组节点,通过各个虚拟组节点根据业务需求中的业务规范对资源实例进行聚合,得到目标资源层级结构;虚拟组节点是用户通过系统的控制台界面进行动态添加的,业务不同,虚拟组节点会不同。
31.进一步地,获取并根据业务需求在对应的父节点和子节点之间插入虚拟组节点;通过虚拟组节点根据业务需求中的业务规范对各个子节点的资源实例进行聚合。
32.在本发明的一些实施例中,已有的资源层级结构完成了资源在父节点上的聚合,这个聚合的粒度在某些业务场景下使用并不方便,例如,数据中心下的备份策略是和数据对象类型强相关的,有的备份策略仅能备份oracle数据库,有的仅能备份vsphere虚拟机,假设用户希望把仅能备份oracle数据库的策略授权给某个用户,显然在数据中心上进行授权操作是不合适。基于已有的资源层级模型,那么必须把可以备份oracle数据库的策略一个个的授权给该用户。虽然依然满足了用户的需求,但是用户体验不好,同时维护也会是个问题。
33.对于该问题,本发明结合已有的资源层结构,在父子节点间插入虚拟的组节点,每个组节点按照某种业务规范对子节点的实例进行聚合,那么上述业务场景会变更为用户在某个虚拟组节点实例上进行授权即可。包含了虚拟组节点的资源层级结构如图3所示。
34.s3、获取并根据备份系统的授权需求基于目标资源层级结构在对应的虚拟组节点中或者基于初始资源层级结构在对应的节点中判断是否将对应的资源授权给对应用户,完成权限管理。
35.进一步地,如图4所示,包括:a1、获取并根据备份系统的授权需求基于目标资源层级结构在对应的虚拟组节点中或者基于初始资源层级结构在对应的节点中判断对应用户是否在资源实例有授权,若是,则返回用户在资源实例上的所有权限,并授权给对应用户,结束;若否,则进入步骤a2;a2、判断用户是否在对应资源的父节点有对资源的授权,若是,则返回用户在资源实例上的所有权限,并授权给对应用户,结束;若否,则进入步骤a3;a3、判断对应的父节点是否是资源层级根节点,若是,则进入步骤a4;若否,则将对应的父节点作为资源节点,并返回步骤a2;a4、判断用户所在的所有用户组是否在资源实例有授权,若是,则返回用户在资源实例上的所有权限,并授权给对应用户,结束;若否,则进入步骤a5;a5、判断用户所在的所有用户组是否在资源的父节点有对资源的授权,若是,则返回用户在资源实例上的所有权限,并授权给对应用户,结束;若否,则进入步骤a6;a6、判断父节点是否是资源层级根节点,若是,则返回无权限,结束;若否,则将对应的父节点作为资源节点,并返回步骤a5。
36.在本发明的一些实施例中,当cdm备份系统需要具体判断一个资源是否授权给某个用户时,依次经过上述多个步骤的判断,在这一过程中,权限传播和覆盖规则如下:1、cdm备份系统中的所有资源具有层级结构,权限在层级结构从父节点传播给子节点。
37.2、父子节点之间的覆盖。如果在父节点上完成的授权给某个特定用户的角色里的权限不符合预期,那么可以在子节点上进行授权操作,该操作会覆写父节点授权中和子节点权限相关的部分。也就是同一用户或用户组在子节点对象上的授权覆写其在父节点对象上授权中传播到子节点对象上的权限。
38.3、用户和用户组之间的覆盖。如果用户同时也在某个用户组,同一对象上,给予用户的授权覆写给予其所在用户组的权限。
39.为了解决现有技术中针对备份系统的资源权限管理的粒度比较粗,资源的范围在角色定义之初就被限定,不可更改,缺乏灵活性的技术问题,本发明结合cdm备份系统中已
有的资源层结构,在资源层结构中的父子节点间插入虚拟的组节点,每个组节点按照某种业务规范对子节点的实例进行聚合,则可实现将各个业务场景变更为用户在某个虚拟组节点实例上进行授权即可。本发明将备份系统进行资源分层并将其应用于备份系统权限管理中,细化并提出了权限在资源分层中传播和覆盖的规则,使得系统通过恰当的权限配置就可以完成客户不同粒度的权限管理需求。本发明兼具细粒度和灵活性,面对cdm备份系统客户各种各样的权限管理需求,通过进行适当的权限配置,就可以完成绝大部分客户的需求,从而显著减少了定制开发的需要,使得以标准产品的方式交付cdm备份系统成为可能。
40.基于第一方面,在本发明的一些实施例中,该基于资源分层的备份系统权限管理方法还包括以下步骤:对判断结果进行缓存,得到缓存列表。
41.由于每个资源的权限判断都需要经过如上的判断流程,为了加快判断速度,在实际系统架构中可以对判断结果进行缓存处理,例如,在常用的spring框架下,判断结果可以缓存在redis中。
42.基于第一方面,在本发明的一些实施例中,该基于资源分层的备份系统权限管理方法还包括以下步骤:对资源和授权的添加、更新和删除操作进行监控,并对缓存列表进行更新。
43.添加资源后,需要根据当前的授权信息进行判断哪些用户或者用户组在该资源上有哪些权限,得到并将判断结果计入缓存。删除资源时,缓存的该资源相应的授权信息需要删除。更新授权时,原来缓存的内容将被删除,然后根据新的授权重新计算判断,进而对缓存列表内的内容进行更新。
44.基于第一方面,在本发明的一些实施例中,该基于资源分层的备份系统权限管理方法还包括以下步骤:根据业务需求将对应的虚拟组节点进行嵌套。
45.虚拟组节点可以进行嵌套。是否添加虚拟组和是否支持嵌套,可以根据业务需求灵活的决定,进而更好的实现权限管理效果。
46.如图5所示,第二方面,本发明实施例提供一种基于资源分层的备份系统权限管理系统,包括层级结构录入模块100、虚拟组添加模块200以及权限管理模块300,其中:层级结构录入模块100,用于获取并对备份系统的资源进行分层,并构建初始资源层级结构;虚拟组添加模块200,用于获取并根据业务需求在对应的初始资源层级结构中添加虚拟组节点,通过各个虚拟组节点根据业务需求中的业务规范对资源实例进行聚合,得到目标资源层级结构;权限管理模块300,用于获取并根据备份系统的授权需求基于目标资源层级结构在对应的虚拟组节点中或者基于初始资源层级结构在对应的节点中判断是否将对应的资源授权给对应用户,完成权限管理。
47.为了解决现有技术中针对备份系统的资源权限管理的粒度比较粗,资源的范围在角色定义之初就被限定,不可更改,缺乏灵活性的技术问题,本系统通过层级结构录入模块100、虚拟组添加模块200以及权限管理模块300等多个模块的配合,结合cdm备份系统中已有的资源层结构,在资源层结构中的父子节点间插入虚拟的组节点,每个组节点按照某种
业务规范对子节点的实例进行聚合,则可实现将各个业务场景变更为用户在某个虚拟组节点实例上进行授权即可。本发明将备份系统进行资源分层并将其应用于备份系统权限管理中,细化并提出了权限在资源分层中传播和覆盖的规则,使得系统通过恰当的权限配置就可以完成客户不同粒度的权限管理需求。
48.如图6所示,第三方面,本技术实施例提供一种电子设备,其包括存储器101,用于存储一个或多个程序;处理器102。当一个或多个程序被处理器102执行时,实现如上述第一方面中任一项的方法。
49.还包括通信接口103,该存储器101、处理器102和通信接口103相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器101可用于存储软件程序及模块,处理器102通过执行存储在存储器101内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口103可用于与其他节点设备进行信令或数据的通信。
50.其中,存储器101可以是但不限于,随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read-only memory,prom),可擦除只读存储器(erasable programmable read-only memory,eprom),电可擦除只读存储器(electric erasable programmable read-only memory,eeprom)等。
51.处理器102可以是一种集成电路芯片,具有信号处理能力。该处理器102可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
52.在本技术所提供的实施例中,应该理解到,所揭露的方法及系统和方法,也可以通过其它的方式实现。以上所描述的方法及系统实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的方法及系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
53.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
54.第四方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器102执行时实现如上述第一方面中任一项的方法。所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个
存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
55.以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
56.对于本领域技术人员而言,显然本技术不限于上述示范性实施例的细节,而且在不背离本技术的精神或基本特征的情况下,能够以其它的具体形式实现本技术。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本技术的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本技术内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。