一种数据范围控制方法和系统技术方案

技术编号:18658519 阅读:28 留言:0更新日期:2018-08-11 14:38
本发明专利技术提供一种数据范围控制方法和系统。其中,方法包括:当数据表中的数据的任一属性能区别不同用户的数据范围时,将任一属性作为第一属性;对于数据表中的任意一个数据,将该数据的用于区别不同用户的数据范围的属性作为第一属性;根据用户的数据范围,获取用户的第一属性的值,创建用户范围表,将每一用户和每一用户的第一属性的值保存到用户范围表中;当用户操作数据表中的数据时,通过查询用户范围表获取用户的第一属性的值,根据用户的第一属性的值,建立操作数据表中的数据的执行条件,使得操作的数据表的数据均在任一用户的数据范围内。本发明专利技术提供的一种数据范围控制方法和系统,不需要进行多次操作或反复操作,操作简单。

A data range control method and system

The invention provides a data range control method and system. Among them, the method includes: when any attribute of the data in the data table can distinguish the data range of different users, any attribute is regarded as the first attribute; for any data in the data table, the attribute of the data used to distinguish the data range of different users is regarded as the first attribute; according to the data range of the user, Get the value of the first attribute of the user, create the user scope table, save the value of the first attribute of each user and each user to the user scope table; when the user manipulates the data in the data table, get the value of the first attribute of the user by querying the user scope table, and establish the operand according to the value of the first attribute of the user. The execution condition of the data in the data table makes the data of the operating data table in the data range of any user. The invention provides a data range control method and system, which need not be operated many times or repeatedly, and is easy to operate.

【技术实现步骤摘要】
一种数据范围控制方法和系统
本专利技术涉及计算机软件
,更具体地,涉及一种数据范围控制方法和系统。
技术介绍
在基于角色的访问控制(Role-BasedAccessControl,简称RBAC)中,权限与角色相关联,用户通过成为某种角色而得到相应的权限。这种权限仅为操作权限,但不包括该操作权限下不同范围的数据权限。为解决更小维度的数据权限问题,给用户分配相应的数据权限。用户的数据权限,为用户的数据范围。具体地,用户的数据范围,为用户能操作的数据的范围,指用户进行操作权限内的操作时,所操作数据的范围。进行数据权限,即数据范围的控制时,通过给角色增加数据范围的属性来限制用户对数据的访问和操作。在给角色增加数据范围的属性时,需要进行多次分配操作:同一个操作权限的角色需要根据不同的数据权限建立多个子角色,或者用户拥有同一个操作权限下多个数据权限时需要多次分配角色。多次分配操作造成存在操作的重复,浪费人力。此外,还需在数据库中针对数据创建表,占用较多的数据库资源。
技术实现思路
为克服现有技术存在的操作复杂的不足,本专利技术提供一种数据范围控制方法和系统。根据本专利技术的一个方面,提供一种数据范围控制方法,包括:S1、当所述数据表中的数据的任一属性能区别不同用户的数据范围时,将所述任一属性作为第一属性;对于数据表中的任意一个数据,将该数据的用于区别不同用户的数据范围的属性作为第一属性;S2、根据用户的数据范围,获取所述用户的第一属性的值,创建用户范围表,将所述每一用户和所述每一用户的第一属性的值保存到所述用户范围表中;S3、当所述用户操作数据表中的数据时,通过查询所述用户范围表获取所述用户的第一属性的值,根据所述用户的第一属性的值,建立所述操作数据表中的数据的执行条件,使得操作的数据表的数据均在所述任一用户的数据范围内;其中,所述数据包括多个属性,所述属性的值用于描述数据的特征。优选地,所述步骤S1还包括:当所述数据表中的数据的每一属性均不能区别用户的数据范围时,获取数据的第二属性,将所述第二属性作为第一属性;其中,所述第二属性与所述数据表中的数据的任一属性均不相同,且能区别不同用户的数据范围。优选地,所述步骤S3之前还包括:将所述第二属性和所述第二属性的值添加到所述数据表中。优选地,所述将所述每一用户和所述每一用户的第一属性的值保存到所述用户范围表中的具体步骤包括:对于所述每一用户,根据所述每一用户的第一属性的值生成SQL条件语句,将所述每一用户和所述SQL条件语句存储在所述用户范围表中;其中,所述SQL条件语句以获取的全部所述第一属性的值为条件;所述条件用于将用户操作的数据表的数据限制在所述用户的数据范围内。优选地,所述步骤S3具体包括:当任一用户操作数据表中的数据时,通过查询所述用户范围表,获取所述任一用户对应的SQL条件语句;根据所述SQL条件语句和所述操作的SQL执行语句,生成新的SQL语句,执行所述新的SQL语句,使得操作的数据表的数据均在所述任一用户的数据范围内。优选地,所述将所述每一用户和所述每一用户的第一属性的值保存到所述用户范围表中的具体步骤包括:对于所述每一用户,将所述每一用户和获取的所述每一用户的每一所述第一属性的值存储在所述用户范围表中。优选地,所述步骤S3具体包括:当用户操作数据表中的数据时,通过查询所述用户范围表,获取所述用户的所述第一属性的值,将获取的所述第一属性的值作为条件,添加到所述操作的SQL语句中,生成新的SQL语句,执行所述新的SQL语句,使得操作的数据表的数据均在所述任一用户的数据范围内;所述条件用于将用户操作的数据表的数据限制在所述用户的数据范围内。根据本专利技术的另一个方面,提供一种数据范围控制系统,包括:属性获取模块,用于当所述数据表中的数据的任一属性能区别不同用户的数据范围时,将所述任一属性作为第一属性;对于数据表中的任意一个数据,将该数据的用于区别不同用户的数据范围的属性作为第一属性;表生成模块,用于根据用户的数据范围,获取所述用户的第一属性的值,创建用户范围表,将所述每一用户和所述每一用户的第一属性的值保存到所述用户范围表中;条件生成模块,用于当所述用户操作数据表中的数据时,通过查询所述用户范围表获取所述用户的第一属性的值,根据所述用户的第一属性的值,建立所述操作数据表中的数据的执行条件,使得操作的数据表的数据均在所述任一用户的数据范围内;其中,所述数据包括多个属性,所述属性的值用于描述数据的特征。优选地,所述表生成模块包括:表创建子模块,用于创建用户范围表;值获取子模块,用于根据用户的数据范围,获取所述用户的第一属性的值;记录子模块,用于将所述每一用户和所述每一用户的第一属性的值保存到所述用户范围表中。优选地,所述条件生成模块包括:查询子模块,用于当所述用户操作数据表中的数据时,通过查询所述用户范围表获取所述用户的第一属性的值;条件生成子模块,用于根据所述用户的第一属性的值,建立所述操作数据表中的数据的执行条件,使得操作的数据表的数据均在所述任一用户的数据范围内。本专利技术提供的一种数据范围控制方法和系统,通过获取区别不同用户的数据范围的属性,将该属性的值作为操作的执行条件,使得用户操作数据的范围被限制为用户的数据范围,在基于角色的访问控制中,建立角色权限和分配用户角色时不需要进行多次操作或反复操作,操作简单、方便,效率高。附图说明图1为本专利技术实施例一种数据范围控制方法的流程图;图2为本专利技术实施例一种数据范围控制系统的结构示意图。具体实施方式下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。以下实施例用于说明本专利技术,但不用来限制本专利技术的范围。在本专利技术的描述中,需要说明的是,除非另有说明,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性。本专利技术提供的方法通过基于角色的访问控制(Role-BasedAccessControl,简称RBAC)实现。首先,对本专利技术的适用场景进行说明。在软件使用中,相同角色的不同用户进行角色的操作权限内的操作时,不同用户执行该操作所操作的数据的范围并不完全相同。例如,在APP首页展示导购图片时,需要安排不同的人员对不同城市进行配置,用户只能对其被配置的城市下的数据进行操作,对于其它城市的数据没有任何数据权限,即用户A被配置为北京的导购,那么用户A具有导购员的角色并通过导购员角色获得展示、回答客户问题等权限,但只能操作北京的数据,对于天津等其它城市则没有数据权限。本专利技术提供的数据范围控制方法,能在基于角色的访问控制的情况下,实现对角色相同但数据权限不同的用户的数据范围的控制。图1为本专利技术实施例一种数据范围控制方法的流程图。如图1所示,一种数据范围控制方法包括:步骤S1、对于数据表中的任意一个数据,将该数据的用于区别不同用户的数据范围的属性作为第一属性;步骤S2、根据用户的数据范围,获取用户的第一属性的值,创建用户范围表,将每一用户和每一用户的第一属性的值保存到用户范围表中;步骤S3、当用户操作数据表中的数据时,通过查询用户范围表获取用户的第一属性的值,根据用户的第一属性的值,建立操作数据表中的数据的执行条件,使得操作的数据表的数据均在任一用户的数据范围内;其中,数据包括多个属性,属性的值用于本文档来自技高网...

【技术保护点】
1.一种数据范围控制方法,其特征在于,包括:S1、对于所述数据表中的任意一个数据,将该数据的用于区别不同用户的数据范围的属性作为第一属性;S2、根据用户的数据范围,获取所述用户的第一属性的值,创建用户范围表,将每一用户和所述每一用户的第一属性的值保存到所述用户范围表中;S3、当所述用户操作数据表中的数据时,通过查询所述用户范围表获取所述用户的第一属性的值,根据所述用户的第一属性的值,建立所述操作数据表中的数据的执行条件,使得操作的数据表的数据均在所述任一用户的数据范围内;其中,所述数据包括多个属性,所述属性的值用于描述数据的特征;所述每一用户的第一属性的值为一个或多个。

【技术特征摘要】
1.一种数据范围控制方法,其特征在于,包括:S1、对于所述数据表中的任意一个数据,将该数据的用于区别不同用户的数据范围的属性作为第一属性;S2、根据用户的数据范围,获取所述用户的第一属性的值,创建用户范围表,将每一用户和所述每一用户的第一属性的值保存到所述用户范围表中;S3、当所述用户操作数据表中的数据时,通过查询所述用户范围表获取所述用户的第一属性的值,根据所述用户的第一属性的值,建立所述操作数据表中的数据的执行条件,使得操作的数据表的数据均在所述任一用户的数据范围内;其中,所述数据包括多个属性,所述属性的值用于描述数据的特征;所述每一用户的第一属性的值为一个或多个。2.根据权利要求1所述的数据范围控制方法,其特征在于,所述步骤S1还包括:当所述数据表中的数据的每一属性均不能区别用户的数据范围时,获取数据的第二属性,将所述第二属性作为第一属性;其中,所述第二属性与所述数据表中的数据的任一属性均不相同,且能区别不同用户的数据范围。3.根据权利要求2所述的数据范围控制方法,其特征在于,所述步骤S3之前还包括:将所述第二属性和所述第二属性的值添加到所述数据表中。4.根据权利要求1至3任一所述的数据范围的控制方法,其特征在于,所述将所述每一用户和所述每一用户的第一属性的值保存到所述用户范围表中的具体步骤包括:对于所述每一用户,根据所述每一用户的第一属性的值生成SQL条件语句,将所述每一用户和所述SQL条件语句存储在所述用户范围表中;其中,所述SQL条件语句以获取的所述第一属性全部的值为条件;所述条件用于将用户操作的数据表的数据限制在所述用户的数据范围内。5.根据权利要求4所述的数据范围控制方法,其特征在于,所述步骤S3具体包括:当任一用户操作数据表中的数据时,通过查询所述用户范围表,获取所述任一用户对应的SQL条件语句;根据所述SQL条件语句和所述操作的SQL执行语句,生成新的SQL语句,执行所述新的SQL语句,使得操作的数据表的数据均在所述任一用户的数据范围内。6.根据权利要求1至3任一所述的数据范围控制方法,所述将所述每一用户和所述每一用户...

【专利技术属性】
技术研发人员:邓园
申请(专利权)人:链家网北京科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1