CN108388809B - 一种数据范围控制方法和系统 - Google Patents
一种数据范围控制方法和系统 Download PDFInfo
- Publication number
- CN108388809B CN108388809B CN201810045014.3A CN201810045014A CN108388809B CN 108388809 B CN108388809 B CN 108388809B CN 201810045014 A CN201810045014 A CN 201810045014A CN 108388809 B CN108388809 B CN 108388809B
- Authority
- CN
- China
- Prior art keywords
- data
- user
- attribute
- range
- value
- 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.)
- Active
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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2445—Data retrieval commands; View definitions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2448—Query languages for particular applications; for extensibility, e.g. user defined types
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据范围控制方法和系统。其中,方法包括:当数据表中的数据的任一属性能区别不同用户的数据范围时,将任一属性作为第一属性;对于数据表中的任意一个数据,将该数据的用于区别不同用户的数据范围的属性作为第一属性;根据用户的数据范围,获取用户的第一属性的值,创建用户范围表,将每一用户和每一用户的第一属性的值保存到用户范围表中;当用户操作数据表中的数据时,通过查询用户范围表获取用户的第一属性的值,根据用户的第一属性的值,建立操作数据表中的数据的执行条件,使得操作的数据表的数据均在任一用户的数据范围内。本发明提供的一种数据范围控制方法和系统,不需要进行多次操作或反复操作,操作简单。
Description
技术领域
本发明涉及计算机软件技术领域,更具体地,涉及一种数据范围控制方法和系统。
背景技术
在基于角色的访问控制(Role-Based Access Control,简称RBAC)中,权限与角色相关联,用户通过成为某种角色而得到相应的权限。这种权限仅为操作权限,但不包括该操作权限下不同范围的数据权限。
为解决更小维度的数据权限问题,给用户分配相应的数据权限。用户的数据权限,为用户的数据范围。具体地,用户的数据范围,为用户能操作的数据的范围,指用户进行操作权限内的操作时,所操作数据的范围。
进行数据权限,即数据范围的控制时,通过给角色增加数据范围的属性来限制用户对数据的访问和操作。在给角色增加数据范围的属性时,需要进行多次分配操作:同一个操作权限的角色需要根据不同的数据权限建立多个子角色,或者用户拥有同一个操作权限下多个数据权限时需要多次分配角色。多次分配操作造成存在操作的重复,浪费人力。此外,还需在数据库中针对数据创建表,占用较多的数据库资源。
发明内容
为克服现有技术存在的操作复杂的不足,本发明提供一种数据范围控制方法和系统。
根据本发明的一个方面,提供一种数据范围控制方法,包括:
S1、当所述数据表中的数据的任一属性能区别不同用户的数据范围时,将所述任一属性作为第一属性;
对于数据表中的任意一个数据,将该数据的用于区别不同用户的数据范围的属性作为第一属性;
S2、根据用户的数据范围,获取所述用户的第一属性的值,创建用户范围表,将所述每一用户和所述每一用户的第一属性的值保存到所述用户范围表中;
S3、当所述用户操作数据表中的数据时,通过查询所述用户范围表获取所述用户的第一属性的值,根据所述用户的第一属性的值,建立所述操作数据表中的数据的执行条件,使得操作的数据表的数据均在所述任一用户的数据范围内;
其中,所述数据包括多个属性,所述属性的值用于描述数据的特征。
优选地,所述步骤S1还包括:
当所述数据表中的数据的每一属性均不能区别用户的数据范围时,获取数据的第二属性,将所述第二属性作为第一属性;
其中,所述第二属性与所述数据表中的数据的任一属性均不相同,且能区别不同用户的数据范围。
优选地,所述步骤S3之前还包括:
将所述第二属性和所述第二属性的值添加到所述数据表中。
优选地,所述将所述每一用户和所述每一用户的第一属性的值保存到所述用户范围表中的具体步骤包括:
对于所述每一用户,根据所述每一用户的第一属性的值生成SQL条件语句,将所述每一用户和所述SQL条件语句存储在所述用户范围表中;
其中,所述SQL条件语句以获取的全部所述第一属性的值为条件;所述条件用于将用户操作的数据表的数据限制在所述用户的数据范围内。
优选地,所述步骤S3具体包括:
当任一用户操作数据表中的数据时,通过查询所述用户范围表,获取所述任一用户对应的SQL条件语句;
根据所述SQL条件语句和所述操作的SQL执行语句,生成新的SQL语句,执行所述新的SQL语句,使得操作的数据表的数据均在所述任一用户的数据范围内。
优选地,所述将所述每一用户和所述每一用户的第一属性的值保存到所述用户范围表中的具体步骤包括:
对于所述每一用户,将所述每一用户和获取的所述每一用户的每一所述第一属性的值存储在所述用户范围表中。
优选地,所述步骤S3具体包括:
当用户操作数据表中的数据时,通过查询所述用户范围表,获取所述用户的所述第一属性的值,将获取的所述第一属性的值作为条件,添加到所述操作的SQL语句中,生成新的SQL语句,执行所述新的SQL语句,使得操作的数据表的数据均在所述任一用户的数据范围内;
所述条件用于将用户操作的数据表的数据限制在所述用户的数据范围内。
根据本发明的另一个方面,提供一种数据范围控制系统,包括:
属性获取模块,用于当所述数据表中的数据的任一属性能区别不同用户的数据范围时,将所述任一属性作为第一属性;
对于数据表中的任意一个数据,将该数据的用于区别不同用户的数据范围的属性作为第一属性;
表生成模块,用于根据用户的数据范围,获取所述用户的第一属性的值,创建用户范围表,将所述每一用户和所述每一用户的第一属性的值保存到所述用户范围表中;
条件生成模块,用于当所述用户操作数据表中的数据时,通过查询所述用户范围表获取所述用户的第一属性的值,根据所述用户的第一属性的值,建立所述操作数据表中的数据的执行条件,使得操作的数据表的数据均在所述任一用户的数据范围内;
其中,所述数据包括多个属性,所述属性的值用于描述数据的特征。
优选地,所述表生成模块包括:
表创建子模块,用于创建用户范围表;
值获取子模块,用于根据用户的数据范围,获取所述用户的第一属性的值;
记录子模块,用于将所述每一用户和所述每一用户的第一属性的值保存到所述用户范围表中。
优选地,所述条件生成模块包括:
查询子模块,用于当所述用户操作数据表中的数据时,通过查询所述用户范围表获取所述用户的第一属性的值;
条件生成子模块,用于根据所述用户的第一属性的值,建立所述操作数据表中的数据的执行条件,使得操作的数据表的数据均在所述任一用户的数据范围内。
本发明提供的一种数据范围控制方法和系统,通过获取区别不同用户的数据范围的属性,将该属性的值作为操作的执行条件,使得用户操作数据的范围被限制为用户的数据范围,在基于角色的访问控制中,建立角色权限和分配用户角色时不需要进行多次操作或反复操作,操作简单、方便,效率高。
附图说明
图1为本发明实施例一种数据范围控制方法的流程图;
图2为本发明实施例一种数据范围控制系统的结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
在本发明的描述中,需要说明的是,除非另有说明,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性。
本发明提供的方法通过基于角色的访问控制(Role-Based Access Control,简称RBAC)实现。
首先,对本发明的适用场景进行说明。
在软件使用中,相同角色的不同用户进行角色的操作权限内的操作时,不同用户执行该操作所操作的数据的范围并不完全相同。
例如,在APP首页展示导购图片时,需要安排不同的人员对不同城市进行配置,用户只能对其被配置的城市下的数据进行操作,对于其它城市的数据没有任何数据权限,即用户A被配置为北京的导购,那么用户A具有导购员的角色并通过导购员角色获得展示、回答客户问题等权限,但只能操作北京的数据,对于天津等其它城市则没有数据权限。
本发明提供的基于角色的访问控制的数据范围控制方法,能在基于角色的访问控制的情况下,实现对角色相同但数据权限不同的用户的数据范围的控制。
图1为本发明实施例一种数据范围控制方法的流程图。如图1所示,一种数据范围控制方法包括:步骤S1、对于数据表中的任意一个数据,将该数据的用于区别不同用户的数据范围的属性作为第一属性;步骤S2、根据用户的数据范围,获取用户的第一属性的值,创建用户范围表,将每一用户和每一用户的第一属性的值保存到用户范围表中;步骤S3、当用户操作数据表中的数据时,通过查询用户范围表获取用户的第一属性的值,根据用户的第一属性的值,建立操作数据表中的数据的执行条件,使得操作的数据表的数据均在任一用户的数据范围内;其中,数据包括多个属性,属性的值用于描述数据的特征。
需要说明的是,数据表中的每条数据都包含了多个属性。数据的属性用于描述数据的特征。
例如,数据表中的数据为房屋数据时,该数据包括了房屋所在的城市、小区、面积、价格、户型等属性,价格属性的值为30000时,表示该房屋的单价为30000元/平方米。
当两条数据的任一属性的值不同时,可以根据该属性区分上述两条数据。进一步地,根据该属性的值,可以区分多条数据,即区分不同的数据范围。
具体地,步骤S1,从数据表中数据的多个属性中,确定能区分用户的数据范围的第一属性;确定第一属性后,根据每一用户的数据范围,获取用户能操作的数据的第一属性的值,将获取的第一属性的值作为该用户的第一属性的值。
第一属性可以在数据表已有的数据的属性中获取。当数据表中的数据的某一属性能区分用户的数据范围时,可以将该属性作为第一属性。
例如,当导购员操作的城市不同时,若数据表中的数据的属性包括城市,可以将数据表中的城市属性作为第一属性,对应数据表中的已有字段city_id。
步骤S2,创建用户范围表,用户范围表用于存储用户和该用户的第一属性的值。
确定第一属性后,根据每一用户的数据范围,获取用户能操作的数据的第一属性的值,即数据表中该用户的数据范围内的数据的第一属性的值。一个用户的第一属性的值为一个或多个。
例如,当不同用户操作的城市不同时,将城市作为第一属性;用户1操作的城市为北京和天津,数据表中北京的城市属性值为10000、天津的城市属性值为10100,那么,获取的用户A的第一属性的值为10000和10010。
对于每一用户,都将获取的该用户的第一属性的值和该用户生成用户范围表中的记录,该记录存储了该用户和该用户的第一属性的值。
通过步骤S2,可以将全部用户与用户的第一属性的值对应存储在用户范围表中。
需要说明的是,步骤S3中的操作为用户通过分配角色获得的操作权限内的操作。当用户请求的操作不在其操作权限内时,软件的运算器或服务端拒绝用户的请求。
因此,需要理解的是,步骤S3之前,软件的管理员在软件中创建用户,并对用户分配角色,使用户获得被分配的角色的操作权限,即使用户获得操作权限。
步骤S3,当用户进行其操作权限内的操作时,查询用户范围表。通过查询用户范围表,获取该用户的全部第一属性的值。
该用户的全部第一属性的值,构成该用户的第一属性的值的范围。通过该用户的第一属性的值的范围,可以确定用户能在数据表中操作的数据的范围,即确定该用户的数据权限。
获取该用户的全部第一属性的值后,根据该用户的全部第一属性的值,建立该操作的执行条件。只有当数据表中数据的第一属性的值落在该用户的第一属性的值的范围时,该操作才对该数据执行。因此,该用户的该操作,在数据表中操作的数据范围被限制为该用户的第一属性的值的范围所对应的数据范围,即操作的数据表的数据均在该用户的数据范围内。
本发明实施例通过获取区别不同用户的数据范围的属性,将该属性的值作为操作的执行条件,使得用户操作数据的范围被限制为用户的数据范围,在基于角色的访问控制中,建立角色权限和分配用户角色时不需要进行多次操作或反复操作,操作简单、方便,效率高。进一步地,新增的用户范围表占用的数据库资源较少,节约了数据库资源。
基于上述实施例,作为一个可选实施例,步骤S1还包括:当数据表中的数据的每一属性均不能区别用户的数据范围时,获取数据的第二属性,将第二属性作为第一属性;其中,第二属性与数据表中的数据的任一属性均不相同,且能区别不同用户的数据范围。
在实际中,数据表中的数据的属性可能都不能区分不同用户的数据权限。
具体地,当数据表中的数据的每一属性均不能区分用户的数据范围时,从数据不同于数据表中的属性中,获取能区分用户的数据范围的属性,该能区分用户的数据范围的属性为第二属性,将第二属性作为第一属性,将数据的第二属性和第二属性的值添加到数据表中的相应位置。
例如,当导购员操作的城市不同时,若数据表中不存在城市属性时,将城市属性确定为第二属性,并作为第一属性。
基于上述实施例,步骤S3之前还包括:将第二属性和第二属性的值添加到数据表中。
具体地,步骤S3之前,在数据表中,增加一个属性,即第一属性,也即第二属性。
例如,当导购员操作的城市不同时,若数据表中不存在城市属性时,将城市属性确定为第二属性,并作为第一属性,并在数据表中添加字段city_id。
对于数据表中的每条数据,相应添加其第二属性的值。
将数据的第二属性和第二属性的值添加到数据表中后,根据每一用户的数据范围,在数据表中获取每一用户的数据范围内的数据的第一属性的值,即第二属性的值。
基于上述实施例,作为一种可选实施例,将每一用户和每一用户的第一属性的值保存到用户范围表中的具体步骤包括:对于每一用户,根据每一用户的第一属性的值生成SQL条件语句,将每一用户和SQL条件语句存储在用户范围表中;其中,SQL条件语句以获取的全部第一属性的值为条件;条件用于将用户操作的数据表的数据限制在用户的数据范围内。
需要说明的是,操作数据表中的数据,是通过SQL语句查询数据表实现的。
具体地,将每一用户和根据每一用户的数据范围获取的第一属性的值存储在用户范围表中时,对于每一用户,以该用户的全部第一属性的值为条件,生成一条SQL条件语句,将用户的全部第一属性的值以SQL条件语句的形式存储在用户范围表中;生成SQL条件语句后,根据该SQL条件语句,生成包括该SQL条件语句和该用户的一条记录。在这种情况下,用户范围表中记录的数量与用户的数量一致。
本发明实施例通过将用户的全部第一属性的值以SQL条件语句的形式存储在用户范围表中,减少了用户范围表中记录的数量,减少了用户范围表的大小,使用户范围表占用的数据库资源较少,节约了数据库资源。
基于上述实施例,步骤S3具体包括:当任一用户操作数据表中的数据时,通过查询用户范围表,获取任一用户对应的SQL条件语句;根据SQL条件语句和操作的SQL执行语句,生成新的SQL语句,执行新的SQL语句,使得操作的数据表的数据均在任一用户的数据范围内。
具体地,当任一用户操作数据表中的数据时,查询用户范围表;通过查询用户范围表,获取该用户对应的SQL条件语句;获取该用户对应的SQL条件语句后,根据该SQL条件语句和操作的SQL语句,生成新的SQL语句。
例如,步骤S1中,第一属性为城市属性city_id,当用户的第一属性的值为110000和120000时,用户范围表存储的用户的SQL条件为where city_id in(110000,120000),用户的操作对应的SQL语句为select*from tableA,那么新的的SQL语句为select*fromtableA where city_id in(110000,120000)。
由于SQL条件语句中,以该用户的全部第一属性的值为条件,因此,新的SQL语句中也包含了该条件。通过执行新的SQL语句,查询数据表,获取在数据表中该操作所操作的数据的范围。由于新的SQL语句中包含的条件为该用户的全部第一属性的值的范围,全部第一属性的值构成了第一属性的值的范围,因此,当数据表中数据的第一属性的值落在该用户的第一属性的值的范围时,该操作才对该数据执行。因此,该用户的该操作,在数据表中操作的数据范围被限制为该用户的第一属性的值的范围所对应的数据范围,即操作的数据表的数据均在该用户的数据范围内。
基于上述实施例,作为一种可选实施例,根据每一用户和每一用户的第一属性的值生成用户范围表中的记录的具体步骤包括:对于每一用户,将每一用户和获取的每一用户的每一第一属性的值存储在用户范围表中。
具体地,将每一用户和根据每一用户的数据范围获取的第一属性的值存储在用户范围表中时,对于每一用户,将该用户和该用户的每一第一属性的值作为一条记录,将全部记录保存在用户范围表中。
对于任一用户,用户范围表中与该用户有关的记录的数量与该用户的第一属性的值的数量相同。因此,用户范围表中记录的数量等于全部用户的第一属性的值的数量之和。
例如,用户A拥有city_id为110000和120000两个城市的数据权限时,在用户数据范围表新增两条记录,两条记录分别包括用户A与110000的对应关系,用户A与120000的对应关系。
基于上述实施例,步骤S3具体包括:当任一用户操作数据表中的数据时,通过查询用户范围表,获取任一用户的全部第一属性的值,将获取的全部第一属性的值作为条件,添加到操作的SQL语句中,生成新的SQL语句,通过执行新的SQL语句,使得操作的数据表的数据均在任一用户的数据范围内;条件用于将用户操作的数据表的数据限制在用户的数据范围内。
具体地,当任一用户操作数据表中的数据时,查询用户范围表;通过查询用户数据范围表,获取该用户的全部第一属性的值,全部第一属性的值构成第一属性的值的范围。
将该用户的全部第一属性的值,作为条件,添加到操作的SQL语句中,生成新的SQL语句。
例如,步骤S1中,第一属性为城市属性city_id,将用户的第一属性的值为110000和120000时存储在用户范围表中,获取用户的第一属性的值为110000和120000后,将第一属性的值为110000和120000作为条件添加到用户的操作对应的SQL语句为select*fromtableA,生成第二SQL语句select*from tableA where city_id in(110000,120000)。
以该用户的全部第一属性的值为条件,新的SQL语句中包含了该条件。通过执行新的SQL语句,查询数据表,获取在数据表中该操作所操作的数据的范围。由于新的SQL语句中包含的条件为该用户的全部第一属性的值的范围,全部第一属性的值构成了第一属性的值的范围,因此,当数据表中数据的第一属性的值落在该用户的第一属性的值的范围时,该操作才对该数据执行。因此,该用户的该操作,在数据表中操作的数据范围被限制为该用户的第一属性的值的范围所对应的数据范围,即操作的数据表的数据均在该用户的数据范围内。
下面通过一个实例说明本发明提供基于角色的访问控制的数据权限控制方法的过程。
APP首页的导购图片需要对24个城市进行配置时,不同的用户对不同的城市进行导购的操作。
现有技术中,首先在数据库中创建一张记录角色与数据权限的映射表。建立24个角色,分别对应操作每个城市的数据权限。如果一个用户拥有多个城市的数据权限,那么需要对该用户人进行多次角色分配操作。
而本发明提供的方法,在数据库创建一张记录用户与第一属性的值的对应关系的用户范围表。例如,第一属性为city_id,用户A管理110000和130100,用户B管理120000,将用户A与110000、用户A与130100、用户B与120000的对应关系作为记录保存到用户范围表中。将全部用户的角色都分配为导购员的角色。不论一个用户是否拥有多个城市的数据权限,每个用户只需要被分配一次角色。
图2为本发明实施例一种数据范围控制系统的结构示意图。如图2所示,基于上述实施例,一种数据范围控制系统,包括:属性获取模块201,用于当数据表中的数据的任一属性能区别不同用户的数据范围时,将任一属性作为第一属性;对于数据表中的任意一个数据,将该数据的用于区别不同用户的数据范围的属性作为第一属性;表生成模块202,用于根据用户的数据范围,获取用户的第一属性的值,创建用户范围表,将每一用户和每一用户的第一属性的值保存到用户范围表中;条件生成模块203,用于当用户操作数据表中的数据时,通过查询用户范围表获取用户的第一属性的值,根据用户的第一属性的值,建立操作数据表中的数据的执行条件,使得操作的数据表的数据均在任一用户的数据范围内;其中,数据包括多个属性,属性的值用于描述数据的特征。
具体地,属性获取模块201与表生成模块202连接,条件生成模块203与表生成模块202连接。
本发明提供的数据范围控制系统用于执行本发明提供的数据范围控制方法,系统包括的各模块实现相应功能的具体方法和流程详见上述数据范围控制方法的实施例,此处不再赘述。
本发明实施例通过获取区别不同用户的数据范围的属性,将该属性的值作为操作的执行条件,使得用户操作数据的范围被限制为用户的数据范围,在基于角色的访问控制中,建立角色权限和分配用户角色时不需要进行多次操作或反复操作,操作简单、方便,效率高。进一步地,新增的用户范围表占用的数据库资源较少,节约了数据库资源。
基于上述实施例,表生成模块包括:表创建子模块,用于创建用户范围表;值获取子模块,用于根据用户的数据范围,获取用户的第一属性的值;记录子模块,用于将每一用户和每一用户的第一属性的值保存到用户范围表中。
具体地,记录子模块分别与表创建子模块、值获取子模块连接。
本发明提供的数据范围控制系统用于执行本发明提供的数据范围控制方法,表生成模块包括的各子模块实现相应功能的具体方法和流程详见上述数据范围控制方法的实施例,此处不再赘述。
基于上述实施例,条件生成模块包括:查询子模块,用于当用户操作数据表中的数据时,通过查询用户范围表获取用户的第一属性的值;条件生成子模块,用于根据用户的第一属性的值,建立操作数据表中的数据的执行条件,使得操作的数据表的数据均在任一用户的数据范围内。
具体地,查询子模块与条件生成子模块连接。
本发明提供的数据范围控制系统用于执行本发明提供的数据范围控制方法,条件生成模块包括的各子模块实现相应功能的具体方法和流程详见上述数据范围控制方法的实施例,此处不再赘述。
最后,本发明的上述实施例仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种数据范围控制方法,其特征在于,包括:
S1、对于数据表中的任意一个数据,将该数据的用于区别不同用户的数据范围的属性作为第一属性;
S2、根据用户的数据范围,获取所述用户的第一属性的值,创建用户范围表,将每一用户和所述每一用户的第一属性的值保存到所述用户范围表中;
S3、当所述用户操作数据表中的数据时,通过查询所述用户范围表获取所述用户的第一属性的值,根据所述用户的第一属性的值,建立所述操作数据表中的数据的执行条件,使得操作的数据表的数据均在任一用户的数据范围内;
其中,所述数据包括多个属性,所述属性的值用于描述数据的特征;所述每一用户的第一属性的值为一个或多个;
所述S1还包括:
当所述数据表中的数据的每一属性均不能区别用户的数据范围时,获取数据的第二属性,将所述第二属性作为第一属性;
其中,所述第二属性与所述数据表中的数据的任一属性均不相同,且能区别不同用户的数据范围;
所述将每一用户和所述每一用户的第一属性的值保存到所述用户范围表中的具体步骤包括:
对于所述每一用户,根据所述每一用户的第一属性的值生成SQL条件语句,将所述每一用户和所述SQL条件语句存储在所述用户范围表中;
其中,所述SQL条件语句以获取的所述第一属性全部的值为条件;所述条件用于将用户操作的数据表的数据限制在所述用户的数据范围内。
2.根据权利要求1所述的数据范围控制方法,其特征在于,所述S3之前还包括:
将所述第二属性和所述第二属性的值添加到所述数据表中。
3.根据权利要求1所述的数据范围控制方法,其特征在于,所述S3具体包括:
当任一用户操作数据表中的数据时,通过查询所述用户范围表,获取所述任一用户对应的SQL条件语句;
根据所述SQL条件语句和所述操作的SQL执行语句,生成新的SQL语句,执行所述新的SQL语句,使得操作的数据表的数据均在所述任一用户的数据范围内。
4.根据权利要求1至2任一所述的数据范围控制方法,所述将所述每一用户和所述每一用户的第一属性的值保存到所述用户范围表中的具体步骤包括:
对于所述每一用户,将所述每一用户和获取的所述每一用户的每一所述第一属性的值存储在所述用户范围表中。
5.根据权利要求4所述的数据范围控制方法,其特征在于,所述S3具体包括:
当用户操作数据表中的数据时,通过查询所述用户范围表,获取所述用户的所述第一属性的值,将获取的所述第一属性的全部值作为条件,添加到所述操作的SQL语句中,生成新的SQL语句,执行所述新的SQL语句,使得操作的数据表的数据均在所述任一用户的数据范围内;
所述条件用于将用户操作的数据表的数据限制在所述用户的数据范围内。
6.一种数据范围控制系统,其特征在于,包括:
属性获取模块,用于当数据表中的数据的任一属性能区别不同用户的数据范围时,将所述任一属性作为第一属性;
对于数据表中的任意一个数据,将该数据的用于区别不同用户的数据范围的属性作为第一属性;
表生成模块,用于根据用户的数据范围,获取所述用户的第一属性的值,创建用户范围表,将每一用户和所述每一用户的第一属性的值保存到所述用户范围表中;
条件生成模块,用于当所述用户操作数据表中的数据时,通过查询所述用户范围表获取所述用户的第一属性的值,根据所述用户的第一属性的值,建立所述操作数据表中的数据的执行条件,使得操作的数据表的数据均在任一用户的数据范围内;
所述属性获取模块,还用于当所述数据表中的数据的每一属性均不能区别用户的数据范围时,获取数据的第二属性,将所述第二属性作为第一属性;
其中,所述第二属性与所述数据表中的数据的任一属性均不相同,且能区别不同用户的数据范围;
其中,所述数据包括多个属性,所述属性的值用于描述数据的特征;
所述将每一用户和所述每一用户的第一属性的值保存到所述用户范围表中的具体步骤包括:
对于所述每一用户,根据所述每一用户的第一属性的值生成SQL条件语句,将所述每一用户和所述SQL条件语句存储在所述用户范围表中;
其中,所述SQL条件语句以获取的所述第一属性全部的值为条件;所述条件用于将用户操作的数据表的数据限制在所述用户的数据范围内。
7.根据权利要求6所述的数据范围控制系统,其特征在于,所述表生成模块包括:
表创建子模块,用于创建用户范围表;
值获取子模块,用于根据用户的数据范围,获取所述用户的第一属性的值;
记录子模块,用于将所述每一用户和所述每一用户的第一属性的值保存到所述用户范围表中。
8.根据权利要求6或7所述的数据范围控制系统,其特征在于,所述条件生成模块包括:
查询子模块,用于当所述用户操作数据表中的数据时,通过查询所述用户范围表获取所述用户的第一属性的值;
条件生成子模块,用于根据所述用户的第一属性的值,建立所述操作数据表中的数据的执行条件,使得操作的数据表的数据均在所述任一用户的数据范围内。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810045014.3A CN108388809B (zh) | 2018-01-17 | 2018-01-17 | 一种数据范围控制方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810045014.3A CN108388809B (zh) | 2018-01-17 | 2018-01-17 | 一种数据范围控制方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108388809A CN108388809A (zh) | 2018-08-10 |
CN108388809B true CN108388809B (zh) | 2021-02-02 |
Family
ID=63077044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810045014.3A Active CN108388809B (zh) | 2018-01-17 | 2018-01-17 | 一种数据范围控制方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108388809B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109885609B (zh) * | 2019-01-31 | 2024-05-07 | 平安科技(深圳)有限公司 | 基于组合的数据范围控制方法、装置及存储介质 |
CN110837656A (zh) * | 2019-11-06 | 2020-02-25 | 北京字节跳动网络技术有限公司 | 用户权限控制方法、装置、服务器设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103412766A (zh) * | 2013-09-05 | 2013-11-27 | 曙光云计算技术有限公司 | 基于用户权限的数据访问方法和装置 |
CN104112085A (zh) * | 2013-04-19 | 2014-10-22 | 阿里巴巴集团控股有限公司 | 一种应用系统集群的数据权限控制方法和装置 |
CN106250782A (zh) * | 2016-08-12 | 2016-12-21 | 天津西瑞尔信息工程有限公司 | 一种基于sql语句解析的数据权限控制方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103198141B (zh) * | 2013-04-18 | 2016-12-28 | 中国农业银行股份有限公司 | 层级关系下数据记录访问控制方法和装置 |
CN104679792A (zh) * | 2013-12-03 | 2015-06-03 | 航天信息软件技术有限公司 | 一种数据权限的实现方法 |
-
2018
- 2018-01-17 CN CN201810045014.3A patent/CN108388809B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104112085A (zh) * | 2013-04-19 | 2014-10-22 | 阿里巴巴集团控股有限公司 | 一种应用系统集群的数据权限控制方法和装置 |
CN103412766A (zh) * | 2013-09-05 | 2013-11-27 | 曙光云计算技术有限公司 | 基于用户权限的数据访问方法和装置 |
CN106250782A (zh) * | 2016-08-12 | 2016-12-21 | 天津西瑞尔信息工程有限公司 | 一种基于sql语句解析的数据权限控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108388809A (zh) | 2018-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107798038B (zh) | 数据响应方法及数据响应设备 | |
CN108519967A (zh) | 图表可视化方法、装置、终端和存储介质 | |
CN111339171B (zh) | 数据查询的方法、装置及设备 | |
CN110941839B (zh) | 用户权限管理方法和系统、设备及存储介质 | |
CN106951773B (zh) | 用户角色分配校验方法及系统 | |
CN105930330A (zh) | 一种门户系统页面显示方法及装置 | |
CN108388809B (zh) | 一种数据范围控制方法和系统 | |
CN111367945A (zh) | 报表查询方法、装置、设备及计算机可读存储介质 | |
CN112307052B (zh) | 一种数据管理方法、服务系统、终端及存储介质 | |
CN111177698B (zh) | 门户系统的处理方法、装置及计算机设备 | |
CN112000911A (zh) | 页面管理方法、装置、电子设备以及存储介质 | |
CN111767574A (zh) | 用户权限确定方法、装置、电子设备及可读存储介质 | |
CN111090803A (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
CN110362591B (zh) | 一种报表展现方法和装置 | |
CN110569266A (zh) | 一种数据查询的方法、装置、设备及存储介质 | |
CN114710469B (zh) | 一种ipv4地址合理化管理方法及装置 | |
CN110334103A (zh) | 推荐服务的更新方法、提供装置、访问装置和推荐系统 | |
CN111339560B (zh) | 一种数据隔离方法、装置及系统 | |
CN111027093A (zh) | 一种访问权限控制方法、装置、电子设备和存储介质 | |
KR20070076342A (ko) | 그리드 환경에서 사용자 그룹 역할/권한 관리 시스템 및접근 제어 방법 | |
CN115757589A (zh) | 数据库的数据交换和共享方法、装置和可读储存介质 | |
CN110334541B (zh) | 一种系统管理的方法及相关装置 | |
CN114238391A (zh) | 数据分页查询方法、装置、电子设备及存储介质 | |
CN114153438A (zh) | 一种api自动生成系统 | |
CN113032471A (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 | ||
CB02 | Change of applicant information |
Address after: 100085 Floor 101 102-1, No. 35 Building, No. 2 Hospital, Xierqi West Road, Haidian District, Beijing Applicant after: Seashell Housing (Beijing) Technology Co.,Ltd. Address before: 100085 Floor 101 102-1, No. 35 Building, No. 2 Hospital, Xierqi West Road, Haidian District, Beijing Applicant before: LIANJIA(BEIJING) TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |