权限控制方法和系统的制作方法

文档序号:6332536阅读:413来源:国知局
专利名称:权限控制方法和系统的制作方法
技术领域
本发明涉及信息管理系统中的权限技术,尤其涉及权限控制方法和系统。
背景技术
在现有的企业信息系统中,为了安全考虑,一般都会涉及到用户权限控制的问题。 通常的权限体系主要是解决“谁”对“什么资源”进行了“什么操作”的问题,也就是用户、 角色、功能资源三要素的问题。常见的授权体系是基于角色功能映射表来实现用户权限管 理的,通常做法是先将系统功能粗分为模块,然后在模块中细分各种子功能,然后将“模块+ 子功能”定义为一个可授权的功能对象,更进一步,对可授权对象配置不相容关系,在授权 过程中判断,符合互斥关系的权限不能授予同一用户,或同一角色主体,如相关技术中所描 述的功能资源管理一样。但是在现实业务系统中,仅仅描述哪些用户对哪些资源拥有权限还远远不够,还 需要判断当某些用户正在行使他们的权限执行某些操作的时候,其他用户即使拥有了一些 权限,也因为这些正在运行的功能,导致他们自己对资源的访问不成功,比如A用户登录系 统进行一些系统级的维护操作,其他用户此时均不能登录系统进行业务操作,原有授权体 系存在如下缺陷1.对功能资源的分层过于简单,或者不分层,或者分层级次是固定的。如相关技术 中仅仅是在在资源上增加功能和模块的层次。2.只关注了静态的授权信息,即一旦这个用户被授予了权限,那么其他用户的操 作不会影响这个用户对已授权功能的使用,而现实系统不同的应用,不同的客户端之间的 操作是有相互影响的。3.如果在授权阶段控制这种功能互斥的问题,那么就会导致一个功能一旦被分配 出去,他的互斥功能均不能再被分配,严重降低了系统的操作并发性。所以需要制定一个并发策略,在系统运行过程中根据这个并发策略,动态判断用 户申请的功能是否可用。又因为需要在运行过程中控制操作的互斥,比如多个用户同时申请权限,如果多 个用户在同一时刻同时申请了权限,系统不做任何处理的话,会产生并发读的问题,导致多 个用户同时申请成功,会导致申请结果错误,这时就还需要一种控制机制,来控制多用户对 互斥权限的申请。目前现有系统大部分借助数据库来完成这类操作,通常会对要控制的对象抽象出 一个锁变量,每次操作前对锁对象加锁控制,锁对象存放在数据库中,执行完从数据库中释 放锁对象,就如相关技术中所处理的一样。使用这种方法,面临以下三种缺陷1.锁变量仍然存储在数据库中,对锁变量的并发控制仍然依赖数据库的锁机制来 保证。2.根据用户锁定业务逻辑对象,导致同一个用户在不同客户端操作操作时,无法 控制互斥性。
3.虽然有业务逻辑对象池,但是仍然只支持点的互斥,而无法支持集合的互斥,比 如某个业务逻辑对象与其它所有业务逻辑对象互斥。因此,需要一种权限控制方式,能够避免上述不同的客户端之间的操作相互影响 的问题,需要在运行过程中控制操作的互斥,控制多用户对互斥权限的申请。

发明内容
本发明所要解决的技术问题在于,提供一种权限控制方法和系统,避免不同的客 户端之间的操作相互影响的问题,需要在运行过程中控制操作的互斥,控制多用户对互斥 权限的申请。本发明提供了一种权限控制方法,包括步骤102,接收权限申请;步骤104,在已 运行和已申请的权限中,查找本次申请的权限的互斥权限,在查找到所述本次申请的权限 的互斥权限时,进入步骤106,在未查找到所述本次申请的权限的互斥权限时,进入步骤 108 ;所述步骤106,拒绝本次权限申请;所述步骤108,将所述本次申请的权限加入已申请 的权限,并在已运行和已申请的其他权限中,查找所述本次申请的权限的互斥权限,在未查 找到所述本次申请的权限的互斥权限时,进入步骤110,在查找到所述本次申请的权限的互 斥权限时,进入步骤112 ;所述步骤110,确认权限申请成功,以供用户使用所述本次申请的 权限;所述步骤112,将所述本次申请的权限从所述已申请的权限中删除,拒绝本次权限申 请。通过该技术方案,通过互斥权限可以对权限申请过程进行动态控制,考虑了多用户操作 的相互影响,避免多用户并发权限处理,提高授权效率。在上述技术方案中,优选地,还包括步骤101,为每个权限制定互斥关系,在所述 步骤104中,根据所述每个权限的互斥关系,查找所述本次申请的权限的互斥权限,在所述 步骤108中,根据所述每个权限的互斥关系,查找所述本次申请的权限的互斥权限。通过该 技术方案,为每个权限制定互斥关系,可以灵活的区分每个操作,可以适用于不同的应用场 景,更加人性化和智能化。在上述技术方案中,优选地,所述互斥关系包括权限ID,标识所述每个权限;互 斥权限ID和不互斥权限ID,在所述互斥权限ID标识的权限中去除所述不互斥权限ID标 识的权限后,作为所述每个权限的互斥权限;互斥类型,所述互斥类型对应的权限也作为所 述每个权限的互斥权限。通过该技术方案,根据实际业务的特点进行分类并定义互斥关系 更符合实际应用,而且能够规范权限互斥关系,根据业务特点归纳出类型,即可以进行批处 理,提高权限申请效率。在上述技术方案中,优选地,在所述步骤102中,所述本次申请的权限为末级权 限,所述步骤101中,制定互斥关系的权限为末级权限。在上述技术方案中,优选地,所述已运行和已申请的权限记录在数据库中,在所述 步骤108中,将所述本次申请的权限加入已申请的权限时,将所述本次申请的权限采用行 级锁的方式记录在所述数据库中,在所述步骤112中,将所述本次申请的权限从所述已申 请的权限中删除,将所述本次申请的权限采用行级锁的方式从所述数据库中删除。通过该 技术方案,能够避免多个互斥任务同时申请,行级锁保证了行与行之间的操作完全是并发 处理,不会导致所有并发申请都不成功,对于大规模频繁申请权限而言,不会因为权限申请 的排他性,而影响整个业务系统的效率。
在上述技术方案中,优选地,在所述步骤102中,为所述本次申请的权限分配唯一 序列号,在所述步骤104中,根据所述唯一序列号,查找所述本次申请的权限的互斥权限, 在所述步骤108中,根据所述唯一序列号,查找所述本次申请的权限的互斥权限。通过该技 术方案,唯一序列号作为客户端的唯一标识,可以正确区分每一个操作,避免同一台客户端 可能运行存在互斥关系的多个应用的情况。本发明还提供了一种权限控制系统,包括权限申请接收模块,接收权限申请;第 一互斥权限查找模块,在已运行和已申请的权限中,查找本次申请的权限的互斥权限,在查 找到所述本次申请的权限的互斥权限时,拒绝本次权限申请,在未查找到所述本次申请的 权限的互斥权限时,启动第二互斥权限查找模块;所述第二互斥权限查找模块,将所述本次 申请的权限加入已申请的权限,并在已运行和已申请的其他权限中,查找所述本次申请的 权限的互斥权限,在未查找到所述本次申请的权限的互斥权限时,确认权限申请成功,以供 用户使用所述本次申请的权限,在查找到所述本次申请的权限的互斥权限时,将所述本次 申请的权限从所述已申请的权限中删除,拒绝本次权限申请。通过该技术方案,通过互斥权 限可以对权限申请过程进行动态控制,考虑了多用户操作的相互影响,避免多用户并发权 限处理,提高授权效率。在上述技术方案中,优选地,还包括互斥关系制定模块,为每个权限制定互斥关 系,所述第一互斥权限查找模块根据所述每个权限的互斥关系,查找所述本次申请的权限 的互斥权限,所述第二互斥权限查找模块根据所述每个权限的互斥关系,查找所述本次申 请的权限的互斥权限。通过该技术方案,为每个权限制定互斥关系,可以灵活的区分每个操 作,可以适用于不同的应用场景,更加人性化和智能化。在上述技术方案中,优选地,所述权限申请接收模块接受申请的权限为末级权限, 通过所述互斥关系制定模块制定互斥关系的权限为末级权限。在上述技术方案中,优选地,还包括权限申请处理模块,在用户申请的权限包括 子权限时,将所述用户申请的权限处理为一个或多个末级权限。通过上述技术方案,可以实现一种权限控制方法和系统,在已运行和已申请的权 限中动态控制权限,当存在互斥关系的功能在运行时,此用户就无法访问此功能,增加了授 权的灵活性,节省数据库存储空间,提高查询效率。


图1是根据本发明的一个实施例的权限控制方法的处理流程图;图2是根据本发明的一个实施例的权限控制系统的框图;图3是根据本发明的一个实施例的权限控制方法的流程示意图;以及图4是根据本发明的一个实施例的权限控制方法的流程示意图。
具体实施例方式下面结合附图和具体实施方式
对本发明进行进一步的详细描述。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可 以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实 施例的限制。
图1是根据本发明的一个实施例的权限控制方法的处理流程图。如图1所示,本发明提供了一种权限控制方法,包括步骤102,接收权限申请;步 骤104,在已运行和已申请的权限中,查找本次申请的权限的互斥权限,在查找到所述本次 申请的权限的互斥权限时,进入步骤106,在未查找到所述本次申请的权限的互斥权限时, 进入步骤108 ;所述步骤106,拒绝本次权限申请;所述步骤108,将所述本次申请的权限加 入已申请的权限,并在已运行和已申请的其他权限中,查找所述本次申请的权限的互斥权 限,在未查找到所述本次申请的权限的互斥权限时,进入步骤110,在查找到所述本次申请 的权限的互斥权限时,进入步骤112 ;所述步骤110,确认权限申请成功,以供用户使用所述 本次申请的权限;所述步骤112,将所述本次申请的权限从所述已申请的权限中删除,拒绝 本次权限申请。通过该技术方案,通过互斥权限可以对权限申请过程进行动态控制,考虑了 多用户操作的相互影响,避免多用户并发权限处理,提高授权效率。在上述技术方案中,还包括步骤101,为每个权限制定互斥关系,在所述步骤104 中,根据所述每个权限的互斥关系,查找所述本次申请的权限的互斥权限,在所述步骤108 中,根据所述每个权限的互斥关系,查找所述本次申请的权限的互斥权限。通过该技术方 案,为每个权限制定互斥关系,可以灵活的区分每个操作,可以适用于不同的应用场景,更 加人性化和智能化。在上述技术方案中,所述互斥关系包括权限ID,标识所述每个权限;互斥权限ID 和不互斥权限ID,在所述互斥权限ID标识的权限中去除所述不互斥权限ID标识的权限后, 作为所述每个权限的互斥权限;互斥类型,所述互斥类型对应的权限也作为所述每个权限 的互斥权限。通过该技术方案,根据实际业务的特点进行分类并定义互斥关系更符合实际 应用,而且能够规范权限互斥关系,根据业务特点归纳出类型,即可以进行批处理,提高权 限申请效率。在上述技术方案中,在所述步骤102中,所述本次申请的权限为末级权限,所述步 骤101中,制定互斥关系的权限为末级权限。在上述技术方案中,所述已运行和已申请的权限记录在数据库中,在所述步骤108 中,将所述本次申请的权限加入已申请的权限时,将所述本次申请的权限采用行级锁的方 式记录在所述数据库中,在所述步骤112中,将所述本次申请的权限从所述已申请的权限 中删除,将所述本次申请的权限采用行级锁的方式从所述数据库中删除。通过该技术方案, 能够避免多个互斥任务同时申请,行级锁保证了行与行之间的操作完全是并发处理,不会 导致所有并发申请都不成功,对于大规模频繁申请权限而言,不会因为权限申请的排他性, 而影响整个业务系统的效率。在上述技术方案中,在所述步骤102中,为所述本次申请的权限分配唯一序列号, 在所述步骤104中,根据所述唯一序列号,查找所述本次申请的权限的互斥权限,在所述步 骤108中,根据所述唯一序列号,查找所述本次申请的权限的互斥权限。通过该技术方案, 唯一序列号作为客户端的唯一标识,可以正确区分每一个操作,避免同一台客户端可能运 行存在互斥关系的多个应用的情况。通过上述技术方案,可以实现一种权限控制方法,在已运行和已申请的权限中动 态控制权限,当存在互斥关系的功能在运行时,此用户就无法访问此功能,增加了授权的灵 活性,节省数据库存储空间,提高查询效率。
图2是根据本发明的一个实施例的权限控制系统的框图。如图2所示,本发明还提供了一种权限控制系统200,包括权限申请接收模块 202,接收权限申请;第一互斥权限查找模块204,在已运行和已申请的权限中,查找本次申 请的权限的互斥权限,在查找到所述本次申请的权限的互斥权限时,拒绝本次权限申请,在 未查找到所述本次申请的权限的互斥权限时,启动第二互斥权限查找模块;所述第二互斥 权限查找模块206,将所述本次申请的权限加入已申请的权限,并在已运行和已申请的其他 权限中,查找所述本次申请的权限的互斥权限,在未查找到所述本次申请的权限的互斥权 限时,确认权限申请成功,以供用户使用所述本次申请的权限,在查找到所述本次申请的权 限的互斥权限时,将所述本次申请的权限从所述已申请的权限中删除,拒绝本次权限申请。 通过该技术方案,通过互斥权限可以对权限申请过程进行动态控制,考虑了多用户操作的 相互影响,避免多用户并发权限处理,提高授权效率。在上述技术方案中,还包括互斥关系制定模块,为每个权限制定互斥关系,所述 第一互斥权限查找模块根据所述每个权限的互斥关系,查找所述本次申请的权限的互斥权 限,所述第二互斥权限查找模块根据所述每个权限的互斥关系,查找所述本次申请的权限 的互斥权限。通过该技术方案,为每个权限制定互斥关系,可以灵活的区分每个操作,可以 适用于不同的应用场景,更加人性化和智能化。在上述技术方案中,所述权限申请接收模块接受申请的权限为末级权限,通过所 述互斥关系制定模块制定互斥关系的权限为末级权限。在上述技术方案中,还包括权限申请处理模块,在用户申请的权限包括子权限 时,将所述用户申请的权限处理为一个或多个末级权限。通过上述技术方案,可以实现一种权限控制系统,在已运行和已申请的权限中动 态控制权限,当存在互斥关系的功能在运行时,此用户就无法访问此功能,增加了授权的灵 活性,节省数据库存储空间,提高查询效率。图3是根据本发明的一个实施例的权限控制方法的流程示意图。如图3所示,步骤302,定义权限树。先将系统功能按照业务的特点进行分类,按照 分类关系存储这些功能,分类可以仿照系统的菜单树进行多级分类,(粗细度的划分也可以 先按照业务划分为不同的模块,然后将所有的系统功能按模块划分,每个功能有且仅有一 个模块与之对应),要求上级分类权限包含所有的下级权限。步骤304,制定互斥关系。根据实际业 的特点,定义这些功能的互斥关系,默认没 有定义的功能属于共享关系。其中,权限存储格式为{权限ID,父权限ID,是否末级},使用这种存储方式,权限 级次可以任意划分。用户在授权的时候,如果选择了父权限,自动将其所有的子权限勾选 上,方便了用户授权,权限分层越细,用户授权则越便利。将互斥关系定义为四元组{权限ID,互斥权限ID,不互斥权限ID,互斥类型},其 中父权限ID 每个权限最多只有一个直接父级权限,父权限是它所有子权限的集
I=I O是否末级是,表示这个权限在权限树中是叶子节点,他下面没有任何子权限。权限ID 需要定义互斥关系的功能,必须是末级权限。
互斥权限ID 与权限ID互斥的功能,如果此权限不是末级权限,则表示此权限的 所有孩子权限都与此功能互斥,一旦定义,这两个功能(或者功能集合)就不能同时在系统 中运行。不互斥权限ID 只有当定义的互斥权限不是末级权限时起作用,如果互斥权限ID 是一个父权限,则他代表的是一组权限,在这一组权限中,如果定义了不互斥权限ID,则表 示互斥权限ID里面的子权限除了已经定义的不互斥权限ID,其余权限均与权限ID互斥。互斥类型为了规范权限互斥规则,在系统中增加互斥类型,可以按照业务系统的 特点归纳出自定义的类型,默认为0,表示权限之间点对点的互斥。根据业务特点归纳的类 型,在记录申请任务的时候,需要将这些特性也记录下来。比如总账模块中的选项按照年度 来控制互斥,只要这个年度有任何一个功能在运行,选项功能申请就失败。互斥类型描述如 下面的图表所示
权利要求
一种权限控制方法,其特征在于,包括步骤102,接收权限申请;步骤104,在已运行和已申请的权限中,查找本次申请的权限的互斥权限,在查找到所述本次申请的权限的互斥权限时,进入步骤106,在未查找到所述本次申请的权限的互斥权限时,进入步骤108;所述步骤106,拒绝本次权限申请;所述步骤108,将所述本次申请的权限加入已申请的权限,并在已运行和已申请的其他权限中,查找所述本次申请的权限的互斥权限,在未查找到所述本次申请的权限的互斥权限时,进入步骤110,在查找到所述本次申请的权限的互斥权限时,进入步骤112;所述步骤110,确认权限申请成功,以供用户使用所述本次申请的权限;所述步骤112,将所述本次申请的权限从所述已申请的权限中删除,拒绝本次权限申请。
2.根据权利要求1所述的权限控制方法,其特征在于,还包括 步骤101,为每个权限制定互斥关系,在所述步骤104中,根据所述每个权限的互斥关系,查找所述本次申请的权限的互斥 权限,在所述步骤108中,根据所述每个权限的互斥关系,查找所述本次申请的权限的互斥 权限。
3.根据权利要求2所述的权限控制方法,其特征在于,所述互斥关系包括 权限ID,标识所述每个权限;互斥权限ID和不互斥权限ID,在所述互斥权限ID标识的权限中去除所述不互斥权限 ID标识的权限后,作为所述每个权限的互斥权限;互斥类型,所述互斥类型对应的权限也作为所述每个权限的互斥权限。
4.根据权利要求2所述的权限控制方法,其特征在于,在所述步骤102中,所述本次申 请的权限为末级权限,所述步骤101中,制定互斥关系的权限为末级权限。
5.根据权利要求1至4中任一项所述的权限控制方法,其特征在于,所述已运行和已申 请的权限记录在数据库中,在所述步骤108中,将所述本次申请的权限加入已申请的权限时,将所述本次申请的 权限采用行级锁的方式记录在所述数据库中,在所述步骤112中,将所述本次申请的权限从所述已申请的权限中删除,将所述本次 申请的权限采用行级锁的方式从所述数据库中删除。
6.根据权利1至4中任一项所述的权限控制方法,其特征在于,在所述步骤102中,为 所述本次申请的权限分配唯一序列号,在所述步骤104中,根据所述唯一序列号,查找所述本次申请的权限的互斥权限, 在所述步骤108中,根据所述唯一序列号,查找所述本次申请的权限的互斥权限。
7.一种权限控制系统,其特征在于,包括 权限申请接收模块,接收权限申请;第一互斥权限查找模块,在已运行和已申请的权限中,查找本次申请的权限的互斥权限,在查找到所述本次申请的权限的互斥权限时,拒绝本次权限申请,在未查找到所述本次 申请的权限的互斥权限时,启动第二互斥权限查找模块;所述第二互斥权限查找模块,将所述本次申请的权限加入已申请的权限,并在已运行 和已申请的其他权限中,查找所述本次申请的权限的互斥权限,在未查找到所述本次申请 的权限的互斥权限时,确认权限申请成功,以供用户使用所述本次申请的权限,在查找到所 述本次申请的权限的互斥权限时,将所述本次申请的权限从所述已申请的权限中删除,拒 绝本次权限申请。
8.根据权利要求7所述的权限控制系统,其特征在于,还包括互斥关系制定模块,为每个权限制定互斥关系,所述第一互斥权限查找模块根据所述每个权限的互斥关系,查找所述本次申请的权限 的互斥权限,所述第二互斥权限查找模块根据所述每个权限的互斥关系,查找所述本次申请的权限 的互斥权限。
9.根据权利要求8所述的权限控制系统,其特征在于,所述权限申请接收模块接受申 请的权限为末级权限,通过所述互斥关系制定模块制定互斥关系的权限为末级权限。
10.根据权利要求9所述的权限控制系统,其特征在于,还包括权限申请处理模块,在用户申请的权限包括子权限时,将所述用户申请的权限处理为 一个或多个末级权限。
全文摘要
本发明提供了一种权限控制方法,包括步骤102,接收权限申请;步骤104,在已运行和已申请的权限中,查找本次申请的权限的互斥权限,在查找到时,进入步骤106,在未查找到时,进入步骤108;步骤106,拒绝本次权限申请;步骤108,将本次申请的权限加入已申请的权限,并在已运行和已申请的其他权限中,查找本次申请的权限的互斥权限,在未查找到时,进入步骤110,在查找到时,进入步骤112;步骤110,确认权限申请成功;步骤112,将本次申请的权限从已申请的权限中删除,拒绝本次权限申请。本发明还提供了一种权限控制系统。根据本发明的技术方案,实现了一种权限控制方法和系统,动态且准确地控制权限的申请。
文档编号G06F21/00GK101976314SQ20101028976
公开日2011年2月16日 申请日期2010年9月21日 优先权日2010年9月21日
发明者郑芸 申请人:用友软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1