CN108985101A - 一种可扩展的数据权限规则控制方法 - Google Patents
一种可扩展的数据权限规则控制方法 Download PDFInfo
- Publication number
- CN108985101A CN108985101A CN201810959231.3A CN201810959231A CN108985101A CN 108985101 A CN108985101 A CN 108985101A CN 201810959231 A CN201810959231 A CN 201810959231A CN 108985101 A CN108985101 A CN 108985101A
- Authority
- CN
- China
- Prior art keywords
- variable
- rule
- sql
- context
- rules
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000004458 analytical method Methods 0.000 claims abstract description 10
- 238000012790 confirmation Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
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
- G06F21/6227—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 where protection concerns the structure of data, e.g. records, types, queries
-
- 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/604—Tools and structures for managing or administering access control systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Automation & Control Theory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种可扩展的数据权限规则控制方法,属于计算机请求资源访问技术领域,包括定义权限规则变量,明确规则变量类型,规则变量类型包括:上下文变量、SQL变量和程序集变量;根据规则变量类型,定义规则解析方法,上下文变量为系统上下文,SQL变量可以通过SQL直接获取业务数据,程序集变量需要继承虚拟类,通过程序实现业务数据的获取;对定义的权限规则和规则解析方法进行配置;分配时,直接权限对象加载规则变量,通过选择规则变量指定权限对象的资源访问范围;运行时,通过规则解析引擎解析数据分配结果,提供可以访问的资源范围。因此,本发明能够提供灵活的数据权限规则控制。
Description
技术领域
本发明涉及计算机请求资源访问技术,尤其涉及一种可扩展的数据权限规则控制方法。
背景技术
随着业务模块、业务规模的不断增加,对业务资源访问变得越来越复杂。不同的用户群体,可访问的业务资源不同,需要进行资源的数据权限控制。但是很多资源数据权限访问需求不可预见,不可预知,或者是对同一类业务资源的数据访问权限控制不同行业、不同的客户群体需求不同,需要提供不依赖于产品、不依赖行业的可扩展的数据访问控制方法。
发明内容
为了解决以上技术问题,本发明提出了一种可扩展的数据权限规则控制方法。能够做到对资源的数据权限访问权限进行扩展配置。
本发明的技术方案是:
包括如下步骤:
S1:定义规则变量。规则变量包括变量名称、变量编号、变量类型、变量适用范围。变量类型包括上下文变量、SQL变量和程序集变量。
S2:定义规则变量解析方法。基于S1定义的规则变量,定义业务规则的解析方法;
S3:配置对应的配置文件。基于S1、S2定义的规则变量及规则变量解析方法,在服务器端配置文件中进行配置;
S4:分配时,根据权限对象加载S3中配置的规则变量,通过选择规则变量指定权限对象的数据访问范围;
S5:运行时,通过规则解析引擎解析数据分配结果,获取实际可访问的数据权限。
S1所述包括:定义规则变量实体类,其实体类包含的属性为:名称(VariableName),编号(ValiableCode),类型(VariableType),适用范围(VariableScope)。
S2所述包括:定义规则变量解析方法,规则变量分为三种类型:上下文变量(ContextVariable)、SQL变量(SQLVariable)和程序集变量(AssemblyVariable)。
上下文变量,直接使用系统上下文会话中的变量,比如,当前用户(CurrentUser当前登录的用户)、我的组织(CurrentOrg当前登录用户所在的系统组织)。
SQL变量,通过SQL解析确认当前变量值。比如,在复杂业务系统中,存在多种业务,多种业务组织,其中,我的核算部门(MyCostDepartment当前登录的用户对应的核算人员所在的核算部门),我的行政部门(MyHRDepartment当前登录用户对应的行政人员所在的行政部门),这些变量可以通过SQL的方式查找并返回数据。SQL变量解析方法中,可以直接使用上下文变量。
程序集变量,通过程序集的方式获取当前变量值。当上下文变量和SQL变量都无法解析一种规则变量时,需要通过程序集的方式进行解析。程序集解析需要统一继承抽象类AbstractAuthorizationRuleVariableParser,实现抽象方法VariableParser(AuthorizationVariableContext rule),该抽象方法返回值为string类型,表示变量解析值。
S3所述包括:配置对应的配置文件,首先,定义配置节<AuthorizationRuelVariable>,在节点AuthorizationRuelVariable下上定义针对S1中的三种变量类型定义三个配置节上下文变量<ContextVariable>、SQL变量<SQLVariable>、程序集变量<AssemblyVariable>,在这三个配置节下分别定义变量集合。根据每种变量类型的特性,定义变量类型属性。上下文变量配置节包含属性:变量名称、变量编号、适用范围、上下文变量;SQL变量节包含属性:变量名称、变量编号、适用范围、解析SQL;程序集变量配置节<AssemblyVariable>包含属性:变量名称、变量编号、适用范围、程序集名、类名。
S4所述包括:分配时,读取S3中配置文件中的规则配置节<AuthorizationRuelVariable>,根据权限对象的模块以及规则变量的适用范围,来加载规则变量,通过选择规则变量指定权限对象的数据访问范围。
S5所述包括:运行时,规则解析引擎根据S4分配的数据权限规则变量,在规则配置节<AuthorizationRuelVariable>中找到规则变量的解析方法,根据解析方法获取实际可访问的数据权限。上下文变量<ContextVariable>,直接节点属性“上下文变量”,可以直接使用上下文类进行访问;SQL变量<SQLVariable>直接返回节点属性“解析SQL”,程序集变量<AssemblyVariable>通过反射程序集和类,运行S2中的方法VariableParser(AuthorizationVariableContext rule)获取返回值。
附图说明
图1是本发明的流程示意图。
具体实施方式
下面对本发明的内容进行更加详细的阐述:
本发明的一种可扩展的数据权限规则控制方法,主要包括如下步骤:
步骤1:定义规则变量。规则变量包括变量名称、变量编号、变量类型、变量适用范围。变量类型包括上下文变量、SQL变量和程序集变量。
public string VariableName{Get;Set;}
public string VariableCode{Get;Set;}
public VariableType VariableType{Get;Set;}
public string VariableScope{Get;Set;}
VariableType为变量类型,包括:ContextVariable,SQLVariable,AssemblyVariable
步骤2:定义规则变量解析方法。基于步骤1定义的规则变量,定义业务规则的解析方法;
(1)上下文变量,直接使用系统上下文会话中的变量,不需要单独解析。比如,当前用户(CurrentUser当前登录的用户)、我的组织(CurrentOrg当前登录用户所在的系统组织)。
(2)SQL变量,通过SQL解析确认当前变量值。SQL变量解析方法中,可以直接使用上下文变量。比如我的核算部门(MyCostDepartment当前登录的用户对应的核算人员所在的核算部门)。
select departID from UserCostDepartment where userID={CurrentUser}
CurrentUser为上下文变量,使用大括号进行标注其变量类型。
(3)程序集变量,通过程序集的方式获取当前变量值。程序集解析需要统一继承抽象类AbstractAuthorizationRuleVariableParser,实现抽象方法
步骤3:配置对应的配置文件。基于步骤1、步骤2定义的规则变量及规则变量解析方法,在服务器端配置文件中进行配置;
步骤4:分配时,根据权限对象加载步骤3中配置的规则变量,通过选择规则变量指定权限对象的数据访问范围;
步骤5:运行时,通过规则解析引擎解析数据分配结果,获取实际可访问的数据权限。
Claims (6)
1.一种可扩展的数据权限规则控制方法,其特征在于,
包括:定义权限规则变量,明确规则变量类型,规则变量类型包括:上下文变量、SQL变量和程序集变量;
根据规则变量类型,定义规则解析方法,上下文变量为系统上下文,SQL变量通过SQL直接获取业务数据,程序集变量需要继承虚拟类,通过程序实现业务数据的获取;对定义的权限规则和规则解析方法进行配置;分配时,直接权限对象加载规则变量,通过选择规则变量指定权限对象的资源访问范围;运行时,通过规则解析引擎解析数据分配结果,提供可以访问的资源范围。
2.根据权利要求1所述的方法,其特征在于,
具体步骤如下:
S1:定义规则变量:规则变量包括变量名称、变量编号、变量类型、变量适用范围;变量类型包括上下文变量、SQL变量和程序集变量;
S2:定义规则变量解析方法:基于S1定义的规则变量,定义业务规则的解析方法;
S3:配置对应的配置文件:基于S1、S2定义的规则变量及规则变量解析方法,在服务器端配置文件中进行配置;
S4:分配时,根据权限对象加载步骤三中配置的规则变量,通过选择规则变量指定权限对象的数据访问范围;
S5:运行时,通过规则解析引擎解析数据分配结果,获取实际可访问的数据权限。
3.根据权利要求2所述的方法,其特征在于,
上下文变量,直接使用系统上下文会话中的变量;
SQL变量,通过SQL解析确认当前变量值;
程序集变量,通过程序集的方式获取当前变量值;当上下文变量和SQL变量都无法解析一种规则变量时,需要通过程序集的方式进行解析;程序集解析需要统一继承抽象类实现抽象方法,该抽象方法返回值为string类型,表示变量解析值。
4.根据权利要求2所述方法,其特征在于:
S3,配置对应的配置文件,首先,定义配置节,在节点下上定义针对步骤S1中的三种变量类型定义三个配置节:上下文变量、SQL变量、程序集变量;在这三个配置节下分别定义变量集合;根据每种变量类型的特性,定义变量类型属性;
上下文变量配置节包含属性:变量名称、变量编号、适用范围、上下文变量;
SQL变量节包含属性:变量名称、变量编号、适用范围、解析SQL;
程序集变量配置节包含属性: 变量名称、变量编号、适用范围、程序集名、类名。
5.根据权利要求4所述方法,其特征在于:
S4,分配时,读取步骤S3中配置文件中的规则配置节,根据权限对象的模块以及规则变量的适用范围,来加载规则变量,通过选择规则变量指定权限对象的数据访问范围。
6.根据权利要求5所述方法,其特征在于:
S5,运行时,规则解析引擎根据步骤S4分配的数据权限规则变量,在规则配置节中找到规则变量的解析方法,根据解析方法获取实际可访问的数据权限;上下文变量直接节点属性“上下文变量”,可以直接使用上下文类进行访问;SQL变量直接返回节点属性“解析SQL”,程序集变量通过反射程序集和类,运行S2中的方法获取返回值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810959231.3A CN108985101A (zh) | 2018-08-22 | 2018-08-22 | 一种可扩展的数据权限规则控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810959231.3A CN108985101A (zh) | 2018-08-22 | 2018-08-22 | 一种可扩展的数据权限规则控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108985101A true CN108985101A (zh) | 2018-12-11 |
Family
ID=64547214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810959231.3A Pending CN108985101A (zh) | 2018-08-22 | 2018-08-22 | 一种可扩展的数据权限规则控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108985101A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111368266A (zh) * | 2020-03-16 | 2020-07-03 | 北京三快在线科技有限公司 | 权限配置方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060009991A1 (en) * | 2004-05-25 | 2006-01-12 | Jun-Jang Jeng | Method and apparatus for using meta-rules to support dynamic rule-based business systems |
CN103020498A (zh) * | 2012-11-19 | 2013-04-03 | 广东亚仿科技股份有限公司 | 一种智能化动态权限控制方法和系统 |
CN104077284A (zh) * | 2013-03-26 | 2014-10-01 | 中国移动通信集团湖北有限公司 | 一种数据安全访问方法及系统 |
CN106951273A (zh) * | 2017-05-02 | 2017-07-14 | 山东浪潮通软信息科技有限公司 | 一种动态配置生成业务工作台的方法和装置 |
-
2018
- 2018-08-22 CN CN201810959231.3A patent/CN108985101A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060009991A1 (en) * | 2004-05-25 | 2006-01-12 | Jun-Jang Jeng | Method and apparatus for using meta-rules to support dynamic rule-based business systems |
CN103020498A (zh) * | 2012-11-19 | 2013-04-03 | 广东亚仿科技股份有限公司 | 一种智能化动态权限控制方法和系统 |
CN104077284A (zh) * | 2013-03-26 | 2014-10-01 | 中国移动通信集团湖北有限公司 | 一种数据安全访问方法及系统 |
CN106951273A (zh) * | 2017-05-02 | 2017-07-14 | 山东浪潮通软信息科技有限公司 | 一种动态配置生成业务工作台的方法和装置 |
Non-Patent Citations (3)
Title |
---|
FY96989: "Jeecg 数据权限配置步骤", 《HTTPS://WWW.DOC88.C OM/P-6002870952333.HTML》 * |
JEECG官方博客: "【JEECG技术文档】数据权限自定义SQL表达式用法说明", 《HTTPS://BLOG.CSDN.NET/ZHANGDAISCOTT/ARTICLE/DETAILS/79230802》 * |
陈柯等: "基于数据访问层的精细访问控制研究", 《电子质量》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111368266A (zh) * | 2020-03-16 | 2020-07-03 | 北京三快在线科技有限公司 | 权限配置方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11188791B2 (en) | Anonymizing data for preserving privacy during use for federated machine learning | |
US20200065303A1 (en) | Addressing memory limits for partition tracking among worker nodes | |
US9594778B1 (en) | Dynamic content systems and methods | |
Hausenblas et al. | Apache drill: interactive ad-hoc analysis at scale | |
US7624097B2 (en) | Abstract records | |
US20060224590A1 (en) | Computer-implemented authorization systems and methods using associations | |
Rajpoot et al. | Integrating attributes into role-based access control | |
CN109062952A (zh) | 一种数据查询方法、装置及电子设备 | |
CN105989082A (zh) | 报表视图生成方法和装置 | |
US11327941B2 (en) | Standardized graph-based framework for determining a license position of an enterprise computer system | |
US11281667B2 (en) | Distributed storage and distributed processing policy enforcement utilizing virtual identifiers | |
EP2626831A1 (en) | Tag Inheritance | |
US10929361B2 (en) | Rule-based data source selection | |
US11531731B2 (en) | Standardized graph-based framework for determining an equivalent license unit metric for an enterprise computer system | |
US20100312785A1 (en) | Servicing query with access path security in relational database management system | |
US20190340557A1 (en) | Standardized graph-based framework for determining an optimal license mix for an enterprise computer system | |
CN110298189A (zh) | 数据库权限管理方法及设备 | |
US9195841B2 (en) | Automated and delegated model-based row level security | |
CN107229392A (zh) | 一种界面展示方法及系统 | |
CN105468619B (zh) | 用于数据库连接池的资源分配方法和装置 | |
CN111414410B (zh) | 数据处理方法、装置、设备和存储介质 | |
Fanrong et al. | Local community detection in complex networks based on maximum cliques extension | |
CN108985101A (zh) | 一种可扩展的数据权限规则控制方法 | |
GB2514779A (en) | Information retrieval from a database system | |
US11423353B2 (en) | System for discovering the capabilities of instruments connected to a data processing system |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181211 |
|
RJ01 | Rejection of invention patent application after publication |