一种计算机系统用户权限的控制方法和系统与流程

文档序号:12039968阅读:202来源:国知局
一种计算机系统用户权限的控制方法和系统与流程
本发明涉及计算机信息系统术,更具体地说,涉及一种计算机系统用户权限的控制方法和系统。

背景技术:
当前在各类计算机应用系统中,如何对资源的访问权限进行有效的管理和控制是一个重要问题。早先的信息系统中会对每个用户指定该用户能访问的资源和对这个资源所能进行的操作(通常为查看、新建、更改和删除)。这样的方式需要对每个系统用户指定对应的访问权限,另外当权限涉及变更时,需要对每个用户的权限分配重新进行指定。这种方案的优势在于可以对每个用户单独制定一套符合该用户的权限控制方案,缺点是当信息系统的用户数量很多时,系统管理员需要对每个用户的权限都进行专门的管控,工作量非常大而且效率很低。在此之后出现了基于角色对系统资源的访问权限进行管理的方法。图1为现有的基于角色的权限分配原理图,如图1所示,这种模式的核心思想是在用户和数据访问权限之间引入“角色”的概念,角色是相对固定的,角色代表公司内具有相同职责的一个群体,例如“财务专员”、“行政专员”、“软件架构师”等。考虑到具有同一角色的群体通常具备相同的数据访问权限,因此,在系统中只需要给每种角色分配对应的权限,然后为系统用户分配角色,将系统用户与角色建立关联关系,这样每个系统用户的权限就指定了。在定义权限时,需要定义“角色”、“角色-权限分配”和“用户-角色分配”,如表1所示。表格1角色-权限分配表角色数据资源操作类型角色1数据资源1读角色1数据资源2读角色2数据资源1读角色2数据资源1新建角色2数据资源1编辑角色2数据资源1删除这种基于“角色”进行权限控制的优势是可以极大的简化权限分配和管理的工作量,但也有一定的缺陷,就是忽略了用户个体的特征。比如,一个公司中张三、李四和王五三名雇员的角色都是“财务专员”,但三人的职位和工作内容可能存在区别,例如张三的职位级别较高,可以看到某些涉及重要机密的信息,李四和王五则不可。要满足这样的使用场景,就必须为张三再建立一个单独的角色,增加了权限管理的工作量。另外,有时公司中同一个人可能会同时被分配到多种不同的角色,这时容易造成管理混乱,甚至会出现系统中“角色”的数量超过“用户”本身的数量的情况。这样就严重影响了基于“角色”管理用户权限的便利性。单个用户个体差异的情况又是在企业应用中通常出现的问题,因此迫切需要对现有的基于角色进行权限分配管理的方法进行优化以适应实际应用的需要。

技术实现要素:
本发明针对现有的基于角色分配权限的技术中上述的缺陷,提供一种计算机系统用户权限的控制方法和系统,能够保留了基于角色进行权限管理的简单、高效的优点,又能够兼有按用户个体分配权限模式的准确针对性的优点。本发明解决其技术问题采用的技术方案是:提供一种计算机系统用户权限的控制方法,包括以下步骤:S1、接收一用户对数据资源的操作请求,识别所述操作请求中为该用户分配的角色、请求的操作类型以及请求的数据资源;S2、根据预先为该用户对应的角色分配的权限判断所述操作请求是否合法;S3、若所述操作请求合法,以所述请求的数据资源为查询条件发起查询请求;S4、根据预先定义的限定条件修改所述查询条件;所述限定条件根据用户属性、角色属性、数据资源属性和环境属性中的至少一种定义;S5、根据修改后的查询条件执行查询,获得查询结果。优选地,所述步骤S2包括:创建限定条件生效表,所述限定条件生效表包括具有对应关系的用户角色、数据资源以及操作类型;若所述操作请求中为用户分配的角色、请求的操作类型以及请求的数据资源符合所述限定条件生效表中的对应关系,则判断所述操作请求合法,若无则判断所述操作请求不合法。优选地,所述限定条件生效表还包括限定条件的名称,所述步骤S4包括:S4a、判断所述限定条件生效表中是否存在与所述操作请求对应的限定条件的名称;S4b、若存在,则根据限定条件的名称获取对应的限定条件,使用获取的限定条件修改所述查询条件,并执行步骤S5;S4c、若不存在,执行所述查询条件,获取查询结果。优选地,所述方法还包括步骤:S0a、预先为用户分配角色,为角色分配权限,定义限定条件;S0b、建立角色、为角色分配的权限和定义的限定条件的名称之间的关联关系,以创建所述限定条件生效表。优选地,在步骤S0a和S0b之间还包括步骤:S0c,对定义的限定条件进行编译,生成抽象语法树,并缓存生成的抽象语法树。优选地,步骤S4b包括以下步骤:S4b1、识别系统采用的数据资源查询方式;S4b2、根据系统采用的数据资源查询方式,将与所述操作请求对应的限定条件生成的抽象语法树转换为该查询方式所能识别的格式;S4b3、根据转换格式后的抽象语法树修改所述查询条件。提供一种计算机系统用户权限的控制系统,包括:识别单元,用于接收一用户对数据资源的操作请求,识别所述操作请求中为该用户分配的角色、请求的操作类型以及请求的数据资源;判断单元,用于根据预先为该用户对应的角色分配的权限判断所述操作请求是否合法;请求单元,用于在所述操作请求合法,以所述请求的数据资源为查询条件发起查询请求;参数设置单元,用于根据预先定义的限定条件修改所述查询条件,所述限定条件根据用户属性、角色属性、资源属性和环境属性中的至少一种定义;查询单元,用于根据修改后的查询条件执行查询,获得查询结果。优选地,所述判断单元还用于创建的限定条件生效表,所述限定条件生效表包括具有对应关系的角色、数据资源以及操作类型;若所述操作请求中为用户分配的角色、请求的操作类型以及请求的数据资源符合所述限定条件生效表中的对应关系,则判断所述操作请求合法,若无则判断所述操作请求不合法。优选地,所述限定条件生效表还包括限定条件的名称,所述参数设置单元包括:限定条件比对模块,用于判断所述限定条件生效表中是否存在与所述操作请求对应的限定条件的名称;限定条件修改模块,用于在存在与所述操作请求对应的限定条件的名称时,根据限定条件的名称获取对应的限定条件,使用获取的限定条件修改所述查询条件;返回模块,当不存在与所述操作请求对应的限定条件时,启动所述查询单元执行所述查询条件,返回查询结果。优选地,所述系统还包括生效表创建单元,所述生效表创建单元包括:分配模块,用于预先为用户分配角色,为角色分配权限,定义限定条件;编译模块,用于对定义的限定条件进行编译,生成抽象语法树,并缓存生成的抽象语法树;列表创建模块,用于建立角色、为角色分配的权限和定义的限定条件的名称之间的关联关系,以创建所述限定条件生效表;限定条件修改模块包括:识别子模块,用于识别系统采用的数据资源查询方式;转换子模块,用于根据系统采用的数据资源查询方式,将与所述操作请求对应的限定条件生成的抽象语法树转换为改查询方式识别的格式;查询条件修改子模块,用于根据转换格式后的抽象语法树修改所述查询条件。本发明的计算机系统用户权限的控制方法和系统具有以下有益效果:根据用户属性、角色属性、资源属性和环境属性中的至少一种定义限定条件,对用户基于其角色获得的权限实现了进一步约束和控制,既保留了基于角色进行权限管理的简单、高效的优点,又兼具按用户个体分配权限模式的针对性优点。附图说明图1为现有的基于角色的权限分配原理图;图2为本发明的计算机系统用户权限的控制方法第一实施例的原理图;图3为本发明的计算机系统用户权限的控制方法第一实施例的工作流程图;图4为本发明的计算机系统用户权限的控制方法第二实施例的原理图;图5为本发明的计算机系统用户权限的控制系统第一实施例的功能框图;图6为本发明的计算机系统用户权限的控制系统第二实施例的功能框图。具体实施方式以下结合附图和实施例对本发明作进一步的解释说明。图2为本发明的计算机系统用户权限的控制方法第一实施例的流程图,如图1所示,在本实施例中,本发明的方法包括以下步骤:S1、接收一用户对数据资源的操作请求,识别所述操作请求中为该用户分配的角色、请求的操作类型以及请求的数据资源;S2、根据预先为该用户对应的角色分配的权限判断所述操作请求是否合法;S3、若所述操作请求合法,以所述请求的数据资源为查询条件发起查询请求;S4、根据预先定义的限定条件修改所述查询条件;所述限定条件根据用户属性、角色属性、数据资源属性和环境属性中的至少一种定义;S5、根据修改后的查询条件执行查询,获得查询结果。在步骤S2中,根据预先创建的限定条件生效表判断接收到的操作请求是否合法。表格2限定条件生效表角色数据资源操作类型限定条件名角色1数据资源1读限定条件1角色1数据资源1编辑角色1数据资源1编辑限定条件2角色2数据资源1读限定条件1如表2所示,限定条件生效表包括具有对应关系的角色、数据资源、操作类型以及限定条件的名称;若操作请求中为用户分配的角色、请求的操作类型以及请求的数据资源符合限定条件生效表中的对应关系,则判断操作请求合法,若无则判断所述操作请求不合法。例如,对接收到的第一个操作请求进行识别,识别出角色为角色1,请求的数据资源为数据资源1,请求的操作类型为读的操作,并判断出识别出的上述信息符合如表2所示的限定条件生效表中的对应的关系,因此,判断第一个操作请求合法。若对接收到的第二个操作请求进行识别,识别出角色为角色2,请求的数据资源为数据资源1,请求的操作类型为编辑的操作,根据相同的方法,判断出第二个操作请求不合法。并且,当判断出操作请求合法时执行步骤S3,否则结束流程。表2中,如果限定条件的名称为空,则表示该条角色-数据资源-操作类型的对应关系没有对应的限定条件,或者未设置限定条件。步骤S4包括以下步骤:S4a、判断所述限定条件生效表中是否存在与所述操作请求对应的限定条件的名称;S4b、若存在,则根据限定条件的名称获取对应的限定条件,使用获取的限定条件修改所述查询条件,并执行步骤S5;S4c、若不存在,执行所述查询条件,获取查询结果。例如,操作请求中识别的角色为角色1,请求的数据资源为数据资源1,请求的操作类型为编辑,则判断出不存在与该操作请求对应的限定条件的名称,则将以数据资源1为查询条件执行查询,并返回(获取)结果。在发明中,在实现角色权限的控制之前,还包括为用户分配角色、为角色分配权限、创建限定条件、以及为角色和分配的权限建立与限定条件的关联关系的步骤。其中,为用户分配角色、为角色分配权限(如表1所示)的步骤可以采用任何一种现有技术实现。在本发明中,根据用户属性(例如,用户姓名、性别等)、角色属性(例如,职务的等级等)、数据资源属性(参见示例)和环境属性(例如,时间、天气等)中的至少一种定义限定条件,创建的限定条件如表3所示。一个限定条件可作用于一个或多个基于角色定义的权限分配规则(即角色-数据资源-操作类型的对应关系),限定条件能够对权限分配规则中的数据资源再次进行筛选和过滤,以实现基于当前用户属性、角色属性、数据资源属性和环境属性中的至少一种细化基于角色获得的访问权限。表格3限定条件定义表限定条件名表达描述限定条件1数据资源1.属性1=某个确定值详细描述限定条件2数据资源1.属性2>某个确定值详细描述限定条件3数据资源3.属性3=某个用户.属性1详细描述在本发明中,将为角色和分配的权限建立与限定条件的关联关系的过程是创建限定条件生效表的过程,通过限定条件的名称将角色和分配的权色与定义的限定条件关联起来,生成表2所示的限定条件生效表。物联网技术的典型应用之一是在物流领域,通常称之为物流可视化。它要求在从生产、运输、存储、到销售的端到端过程中对物资的信息进行跟踪、收集和分析,以支撑管理和决策。在物资流转的过程中必然涉及到多家企业组织,因而一个物联网物流可视化应用系统的用户通常来自于这一物流过程中所涉及的多家不同企业。这种应用场景要求某些如产品主数据这样的信息在这个应用平台上是共享的,但是如订单、发货单、产品个体、产品个体状态这类型信息只有部分相关的企业才能访问。这对权限管理系统的权限控制粒度、灵活性提出很高的要求。以下为本发明的角色权限的控制方法应用示例,对角色权限进行控制的目标是让“销售经理”和“物流经理”可以查看订单,但是只能查看自己所属公司的订单。首先在“角色-权限分配表”中给角色“销售经理”和“物流经理”定义“查看”、“订单”的权限,如下表所示。表格4角色-权限分配示例表角色数据资源操作类型销售经理订单读物流经理订单读然后在“限定条件定义表”中定义一条“只能查看自己公司订单”的限定条件,如下表所示。此为根据数据资源属性定义限定条件。表格5限定条件定义示例表限定条件定义好之后,系统管理员在将这一限定条件与它要约束的那两条“角色-权限分配”关联起生成了限定条件生效表,如下表所示。在该示例中,订单为数据资源,而订单的属性,例如下单的公司(购买方)、被下单的公司(卖方)等属于数据资源属性。表格6限定条件生效示例表角色数据资源操作类型限制条件名销售经理订单读限定条件1物流经理订单读限定条件1结合图3所示,当张三作为一个“销售经理”发起“查看订单”的操作请求后,系统首先会从该操作请求中提取出请求人的角色、请求的操作类型和请求的数据资源,即“销售经理”、“读”和“订单”。接着系统根据限定条件生效表判断出可以允许该操作请求,接着系统会发起相应查询请求“请求所有的订单”。此时系统会加入限定条件的控制,首先系统根据限定条件生效表判断出有一条限定条件(限定条件1)被指定要控制这个角色的此类数据操作。系统根据这条限定条件的定义,将原来“请求所有的订单”查询条件修改为“请求所有递交到该用户所属企业的订单”并按新的查询条件发起查询请求并返回了所有递交到该用户所述企业的订单,通过对请求的数据资源根据限定条件再次进行过滤,从而实现对该角色数据访问权限的细化控制。本发明的计算机系统用户权限的控制方法,实现了对计算机系统用户对应的角色权限的细化控制,是在系统运行时,由系统管理员按照权限实际控制需求进行定义、系统自动执行,无需应用开发人员介入,开发人员在应用程序的开发过程中也不用考虑系统权限控制需求。此外,它支持从用户属性、角色属性、资源属性、环境属性或者所要执行的操作对角色的数据访问的粒度和权限进行细化,非常灵活。图4为本发明的计算机系统用户权限的控制方法第二实施例的原理流程图,如图4所示,在本实施例中,本发明的方法还包括步骤:S0a、预先为用户分配角色,为角色分配权限,定义限定条件;S0c,对定义的限定条件进行编译,生成抽象语法树,并缓存生成的抽象语法树;S0b、建立角色、为角色分配的权限和定义的限定条件的名称之间的关联关系,以创建所述限定条件生效表。在本实施例中,步骤S4b包括以下步骤:S4b1、识别系统采用的数据资源查询方式;S4b2、根据系统采用的数据资源查询方式,将与所述操作请求对应的限定条件生成的抽象语法树转换为该查询方式所能识别的格式;S4b3、根据转换格式后的抽象语法树修改所述查询条件。在本实施中,每个限定条件都将转化为用DomainSpecificLanguage编写的语句,限定语句编译后将生成一个抽象语法树(AbstractSyntaxtTree,AST)。这些AST生成后将被缓存起来,并将在数据资源的查询过程中生效。AST与系统具体采用的数据查询方式(例如,SQLorHQL)无关。在本实施例中,根据系统具体采用的数据资源的查询方式,把AST转换成该查询方式可识别的格式后,再对当前的数据资源的查询条件进行修正。利用这种机制,一个限定语句可以灵活支持多种常用的数据查询方式。并且限定语句编译之后可以被缓存起来,只要限定本身不发生变化,它就可以反复使用(对涉及的数据查询条件进行修正)。在本实施例中,其余情况与本发明的方法的第一实施例相同,在此不再赘述。图5为本发明的计算机系统用户权限的控制系统100第一实施例的功能框图,如图5所示,系统100包括:识别单元110,用于接收一用户对数据资源的操作请求,识别所述操作请求中为该用户分配的角色、请求的操作类型以及请求的数据资源;判断单元120,用于根据预先为该用户对应的角色分配的权限判断所述操作请求是否合法;请求单元130,用于在所述操作请求合法,以所述请求的数据资源为查询条件发起查询请求;参数设置单元140,用于根据预先定义的限定条件修改所述查询条件,所述限定条件根据用户属性、角色属性、资源属性和环境属性中的至少一种定义;查询单元150,用于根据修改后的查询条件执行查询,获得查询结果。其中,判断单元120还用于创建的限定条件生效表,所述限定条件生效表包括具有对应关系的角色、数据资源以及操作类型;若所述操作请求中为用户分配的角色、请求的操作类型以及请求的数据资源符合所述限定条件生效表中的对应关系,则判断所述操作请求合法,若无则判断所述操作请求不合法。参数设置单元140包括:限定条件比对模块141,用于判断所述限定条件生效表中是否存在与所述操作请求对应的限定条件的名称;限定条件修改模块142,用于在存在与所述操作请求对应的限定条件的名称时,根据限定条件的名称获取对应的限定条件,使用获取的限定条件修改所述查询条件;返回模块143,当不存在与所述操作请求对应的限定条件时,启动查询单元150执行所述查询条件,返回查询结果。图6为本发明的计算机系统用户权限的控制系统100第二实施例的功能框图,如图6所示,系统100还包括生效表创建单元160,生效表创建单元160包括:分配模块161,用于预先为用户分配角色,为角色分配权限,定义限定条件;编译模块162,用于对定义的限定条件进行编译,生成抽象语法树,并缓存生成的抽象语法树;列表创建模块163,用于建立角色、为角色分配的权限和定义的限定条件的名称之间的关联关系,以创建所述限定条件生效表;限定条件修改模块142包括:识别子模块142a,用于识别系统采用的数据资源查询方式;转换子模块142b,用于根据系统采用的数据资源查询方式,将与所述操作请求对应的限定条件生成的抽象语法树转换为改查询方式识别的格式;查询条件修改子模块142c,用于根据转换格式后的抽象语法树修改所述查询条件。在本实施例中,限定条件修改模块142包括:识别子模块142a,用于识别系统采用的数据资源查询方式;转换子模块142b,用于根据系统采用的数据资源查询方式,将与所述操作请求对应的限定条件生成的抽象语法树转换为改查询方式识别的格式;查询条件修改子模块142c,用于根据转换格式后的抽象语法树修改所述查询条件。在本实施例中,其余情况与本发明的系统100的第一实施例相同,在此不再赘述。本发明的方法和系统100可以广泛适用于各种业务系统中,如企业资源管理系统、办公自动化系统、商务系统等。本发明的方法和系统100,不仅可以支持按业务实体类型(即表)控制权限,还可以控制到更小粒度的某个业务实体的实例(即表的行);非常灵活:可以支持根据用户属性、角色属性、资源属性、环境属性或者所要执行的操作对按角色定义的数据访问权限进行细化;系统权限控制在独立的模块中实现,应用程序的开发过程中无需考虑系统权限控制需求,在系统运行时由系统管理员按照权限实际控制需求进行定义、系统自行执行,无需应用开发人员介入;因为DSL本质上就是无状态的,因此只要系统管理员没有对限定条件进行更改,用DSL写的限定语句编译一次之后,可以缓存起来反复被调用、执行;根据本发明的方法和系统100实现的权限控制可将对系统性能的影响降到最低;可兼容SQL(StructureQueryLanguage)和HQL(HibernateQueryLanguage)。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。另外,本发明各实施例中的技术特征可以单独使用,也可以组合使用。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1