CN115186289A - 基于规则的数据权限控制方法、系统、电子设备和介质 - Google Patents

基于规则的数据权限控制方法、系统、电子设备和介质 Download PDF

Info

Publication number
CN115186289A
CN115186289A CN202210592930.5A CN202210592930A CN115186289A CN 115186289 A CN115186289 A CN 115186289A CN 202210592930 A CN202210592930 A CN 202210592930A CN 115186289 A CN115186289 A CN 115186289A
Authority
CN
China
Prior art keywords
rule
data
business form
authority
data operation
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.)
Granted
Application number
CN202210592930.5A
Other languages
English (en)
Other versions
CN115186289B (zh
Inventor
唐旸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN202210592930.5A priority Critical patent/CN115186289B/zh
Publication of CN115186289A publication Critical patent/CN115186289A/zh
Application granted granted Critical
Publication of CN115186289B publication Critical patent/CN115186289B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6227Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于规则的数据权限控制方法、系统、电子设备和介质,用于系统管理员配置端的方法包括步骤:S100,接收到系统管理员账号输入的用类自然语言定义或修改的针对系统内的第一业务表单的数据操作权限规则,所述规则用于使第一普通用户对第一业务表单拥有相匹配的数据操作权限,S200,将步骤S100中的数据操作权限规则发送给所述系统的后台服务器端,以便于所述后台服务器端将所述类自然语言定义或修改的第一业务表单的数据操作权限规则转化为可执行的机器代码。本发明借助规则执行机制,可以针对表单任意行、列和格权限进行控制,且能够灵活地适应用户需求,快速实现数据操作控制规则变更,也能够显著减少系统维护的工作量。

Description

基于规则的数据权限控制方法、系统、电子设备和介质
技术领域
本发明涉及数据权限控制技术领域,特别涉及一种基于规则的数据权限控制方法、系统、电子设备和介质。
背景技术
随着信息系统建设和应用的深入,越来越多的数据被装入到系统之中,系统需要应对越来越多、越来越复杂的数据权限要求,而且往往会随着业务不断发生变化。如何确保系统中的数据权限受控则成为数据安全的重中之重。
当前数据权限的主流方式是RBAC。RBAC是基于角色的访问控制(Role-BasedAccess Control),用户通过担任适当的角色而得到这些角色的权限,角色通常指的是用户的职务身份(例如,该用户是总经理,是部门主管,还是普通员工)。RBAC认为授权实际上是RBAC认为授权实际上是也就是什么人对什么物做了何种操作授权。但RBAC对实现数据表的灵活、多条件的权限控制则非常困难,也缺乏必要的技术实现手段。
数据控制权限是权限控制的难点,RBAC等现有的数据权限控制方法都是在系统开发时,由软件用户梳理出具体的数据权限要求,软件开发商则直接通过编程将上述具体的数据权限控制规则固化在系统内部,或者做成配置项让用户自行配置。在软件用户后期使用时,如果数据权限规则发生变化,超出了预定的配置项的范围,往往只能通过二次开发的方式来实现用户需求。即使最终能够实现需求,这种二次开发往往会花费周期和代价。
发明内容
基于上述现状,本发明的主要目的在于提供一种基于规则的数据权限控制方法、系统、电子设备和介质,借助规则执行机制,可以针对表单任意行、列和格的数据权限进行控制,且能够灵活地适应用户需求变化,快速实现数据操作控制规则变更,也能够显著减少系统维护的工作量。
为实现上述目的,本发明采用的技术方案如下:
第一方面,本发明提供了一种基于规则的数据权限控制方法,用于系统管理员配置端,所述方法包括如下步骤:
S100,接收到系统管理员账号输入的用类自然语言定义或修改的针对系统内的第一业务表单的数据操作权限规则,所述规则用于使第一普通用户对第一业务表单拥有相匹配的数据操作权限,
所述规则包括条件部分和动作部分,所述条件部分用于从所述系统内任意对象属性中按需调取一个或者多个属性进行布尔逻辑操作,并将操作结果作为判断条件;所述动作部分用于以所述第一业务表单中的数据作为操作对象,对所述第一业务表单的数据操作权限进行设定;
S200,将步骤S100中的用类自然语言定义或修改的第一业务表单的数据操作权限规则发送给所述系统的后台服务器端,以便于所述后台服务器端将所述类自然语言定义或修改的第一业务表单的数据操作权限规则转化为可执行的机器代码。
优选地,所述第一业务表单是行列格式的简单表单,所述第一业务表单具有至少一个属性,所述规则中的条件部分还用于以所述第一业务表单的构成可计算关系的属性之间的计算关系进行布尔逻辑操作,并将操作结果作为判断条件。
优选地,所述第一业务表单是包括主表和至少一个子表的复杂表单,所述子表为行列格式的简单表单,所述主表和每个子表均具有至少一个属性,所述规则中的条件部分用于同时从所述主表和每个子表的所有属性中分别按需调取一个或者多个属性进行布尔逻辑操作,并将操作结果作为判断条件。
优选地,所述第一业务表单是包括主表和至少一个子表的复杂表单,所述子表为行列格式的简单表单,所述主表和每个子表均具有至少一个属性,所述规则中的条件部分用于以所述第一业务表单的构成可计算关系的属性之间的计算关系进行布尔逻辑操作,并将操作结果作为判断条件。
第二方面,本发明还提供了一种基于规则的数据权限控制方法,所述方法包括如下步骤:
S100’,系统管理员配置端接收到系统管理员账号输入的用类自然语言定义或修改的对系统内的第一业务表单的数据操作权限规则,所述规则用于使第一普通用户对第一业务表单拥有相匹配的数据操作权限,
所述规则包括条件部分和动作部分,所述条件部分用于从所述系统内任意对象属性中按需调取一个或者多个属性进行布尔逻辑操作,并将操作结果作为判断条件;所述动作部分用于以所述第一业务表单中的数据作为操作对象,对所述第一业务表单的数据操作权限进行设定;
S200’,所述系统管理员配置端将步骤S100’中的类自然语言定义或修改的第一业务表单的数据操作权限规则发送给所述系统的后台服务器端,以便于所述后台服务器端将所述类自然语言定义或修改的第一业务表单的数据操作权限规则转化为可执行的机器代码;
S300’,所述后台服务器端接收步骤S200’中的类自然语言定义或修改的第一业务表单的数据操作权限规则,并转化为可执行的机器代码;
S400’,普通用户端接收到第一普通用户账号发出的对第一业务表单的第一操作请求,并将所述第一操作请求发送给所述系统的后台服务器端;
S500’,所述后台服务器端接收到所述第一操作请求后,根据步骤S300’中的可执行的机器代码判断所述第一普通用户是否拥有对第一操作请求所针对的数据的操作权限,如为是,则将所第一操作请求所针对的数据返回到普通用户端,供所述第一普通用户对所述数据进行第一操作;如为否,则不将所第一操作请求所针对的数据返回到普通用户端。
优选地,在步骤S500’中,所述后台服务器端还根据所述第一业务表单从其父系以上表单继承的数据操作权限规则所对应的可执行的机器代码,来判断所述第一普通用户是否拥有对第一操作请求所针对的数据的操作权限。
优选地,所述步骤S500’还包括,所述后台服务器端还对第一业务表单的数据操作权限规则和所述第一业务表单从其父系以上表单继承的数据操作权限规则的所有规则内容进行冲突检查。
第三方面,本发明还提供了一种系统,包括后台服务器端、普通用户端和系统管理员配置端,所述系统能够实现如上第二方面所述的方法。
第四方面,本发明还提供了一种电子设备,包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,能够实现如上第一方面所述的方法。
第五方面,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序用于实现如上第一方面所述的方法。
本发明的基于规则的数据权限控制方法,能够按系统的任意属性(例如当前时间、当前登陆账号等)、用户的任意属性(例如所属组织、岗位和人员信息等)、表单的任意属性(包含表单信息项等)、流程的任意属性(包含当前表单的流程状态)等等系统中任意对象的属性作为数据规则中条件部分的判断对象,实现多条件组合式的数据操作权限控制,使得数据表的权限控制极为灵活;同时,本发明的用户可以在系统管理员配置端,即可用类自然语言动态编写或者修改数据表的数据操作权限规则,从而实现灵活地适应用户需求对数据权限进行新增/调整,快速响应数据操作控制规则变更的需求,并做到实时生效,能够显著减少系统维护的工作量。
本发明的其他有益效果,将在具体实施方式中通过具体技术特征和技术方案的介绍来阐述,本领域技术人员通过这些技术特征和技术方案的介绍,应能理解所述技术特征和技术方案带来的有益技术效果。
附图说明
以下将参照附图对根据本发明的基于模型和规则的工作流实现方法的优选实施方式进行描述。图中:
图1为本发明的用于系统管理员配置端的基于规则的数据权限控制方法的一种优选实施方式的流程示意图;
图2为本发明的基于规则的数据权限控制方法的一种优选实施方式的流程示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分,为了避免混淆本发明的实质,公知的方法、过程、流程、元件并没有详细叙述。
此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本发明中的一些术语解释如下:
系统:通常指信息管理系统,包括后台服务器端,还包括系统管理员用户配置端和第一普通用户操作端,后台服务器端内有数据库,数据库内存有以表单形式为载体的数据。
系统管理员配置端:是用户方(如购买该系统的某单位)中的系统管理员 (可为该单位指定的员工)使用的终端,系统管理员在该端,用类自然语言定义/修改对系统内的表单的数据操作权限规则。该端通常依赖于系统管理员登陆用户方的局域网内的电脑、移动终端等电子设备,登录系统管理员账号,来完成用类自然语言定义/修改对系统内的表单的数据操作权限规则。
普通用户端:该端通常是依赖于第一普通用户登录用户方的局域网内的电脑、移动终端等电子设备,登录第一普通用户自身的账号,来发出对数据的具体操作请求。第一普通用户是该系统的普通使用者之一,区别于系统管理员,因为就一个公司而言,系统管理员只需要一个或者有限几个,其余的员工并不参与系统管理、而是直接使用系统,故而用“第一普通用户”的概念指代前述并不参与系统管理、只是直接使用系统中的员工中的任意一个。
第一业务表单:指的系统中的各种业务表单的其中之一,例如人员工资表、人员出勤表等需要控制数据权限的业务表单(显然,对这些表单,不宜被任何第一普通用户都能查看或者修改到其所有数据信息)。
类自然语言:区别于代码形式的程序语言,也区别于人类生活中交流所使用的语言为自然语言(如汉语等)。类自然语言是在自然语言的基础上,还可以根据规则格式的需要,引入特定的词汇定义、语法和表达式操作符(如“>”,“=”,“<”,“.”等)等等的语言,该语言能够被计算机理解并且执行。
本领域技术人员可以理解地,在上述介绍“系统管理员配置端”和“普通用户端”中,所提到的“用户方的局域网内的电脑、移动终端等电子设备”可以是同一台电脑/移动终端等,但由于系统管理员和普通用户权限不同,故操作界面和权限都不同。当然,作为系统管理员的个人,也可以身兼普通用户身份,其登录时可获取身兼各个岗位的权限累加。
第一方面,本发明提供了一种基于规则的数据权限控制方法,用于系统管理员配置端,所述方法包括如下步骤:
S100,接收到系统管理员账号输入的用类自然语言定义或修改的针对系统内的第一业务表单的数据操作权限规则,所述规则用于使第一普通用户对第一业务表单拥有相匹配的数据操作权限,
所述规则包括条件部分和动作部分,所述条件部分用于从所述系统内任意对象属性按需调取一个或者多个属性进行布尔逻辑操作,并将操作结果作为判断条件;所述动作部分用于以所述第一业务表单中的数据作为操作对象,对第一业务表单的数据操作权限进行设定;
S200,将步骤S100中的用类自然语言定义或修改的第一业务表单的数据操作权限规则发送给所述系统的后台服务器端,以便于所述后台服务器端将所述类自然语言定义或修改的第一业务表单的数据操作权限规则转化为可执行的机器代码。
以第一业务表单为例进行具体解释,对于第一普通用户,其能够对该表单中的多少数据有操作权限,受到对其第一业务表单的数据操作权限规则的约束。
在系统开发过程中,可以将用户已经提出的对该第一业务表单的数据操作权限规则通过直接编写程序语言成型在系统的后台服务器端,而系统开发结束、完成交付之后,当权限需求发生变化时,用户中的具有系统管理员身份的特定人,可以通过登录系统管理员账号,在系统管理员账号下,用类自然语言修改对所述第一业务表单的数据操作权限规则(该修改显然并非是指直接用类自然语言去修改原规则的后台的程序代码,而是在系统管理员用户配置端,用类自然语言将新的规则描述出来)。系统开发过程中,用户也可以不预先提出任何数据操作权限规则需求,在系统已经交付之后,用户中系统管理员根据己方需要,用类自然语言首次定义对所述第一业务表单的数据操作权限规则。
步骤S100中所述的“系统内任意对象属性”,是和这个系统相关的、或存储在这个系统内的任何对象的任意属性,例如,可包括系统属性(系统自身也是一个对象)的任意属性(例如当前时间、当前登录账号等)、用户的任意属性(例如所属部门、岗位等人员信息项等)、表单的任意属性(包含表单信息项等等)、流程的任意属性(例如,当前表单的流程状态)等等。
例如,所述条件部分,可以用于调取第一普通用户的任意属性进行对第一业务表单的数据操作权限设置,所述第一普通用户的任意属性包括,例如,姓名、所属组织、职务、岗位、年龄、性别、身份证号、手机号码、联系地址、婚姻状况、子女数量、出生日期、入职时间、基本工资、住房补贴、特殊补贴等属性。本领域技术人员可以理解地,在前述罗列出的“姓名、所属组织、职务、岗位、年龄、性别、身份证号、手机号码、联系地址、婚姻状况、子女数量、出生日期、入职时间、基本工资、住房补贴、特殊补贴”这些信息中的部分被显示在表单中之后(例如,工资表里通常会显示用户的姓名和所属组织),在表单中显示的这部分信息就成为了表单的属性(承前例,未在工资表里显示的其它信息如用户婚姻状态、子女数量等等,构成工资表单属性之外的用户自身属性)。
当然,所述条件部分也可以用于调取系统、表单或流程等等的任意属性来对第一业务表单的数据操作权限设置。
还可以任意综合第一普通用户的任意属性、所述系统自身的任意属性、表单的任意属性和流程的任意属性等等,来制定对第一业务表单的数据操作权限,例如,可以将权限规则制定为:如果当前时间为2023年之后,并且工资表的审批结果为通过,并且当前工资表的姓名为第一普通用户本人;那么当前工资表中第一普通用户的工资数据可以被第一普通用户查看。
所述数据操作的具体操作类型,通常包括数据查看、数据修改、数据删除和数据新增。
在步骤S100中,系统管理员可以通过预定义语法格式进行对规则的编写 (该预定义语义格式可由系统开发商制定,系统管理员便于掌握,在具体应用中可直接嵌套该格式,用类自然语言编写数据权限规则,该预定义语法格式可便于该系统的后端服务器端通过简单的解析、编译即可转化成可执行的程序代码)。
具体地,预定义语法格式以{如果}<条件>{那么}<动作>为主体形式,其中,<条件>的形式可以是<表达式1>{并且}<表达式2>{并且}<表达式3>,其中,{并且}用于表示交集运算,{并且}也可替换为{或者}以用于表示并集计算,由此能够实现同时满足多个条件的判断。在一个具体的示例中,条件部分可以为,调取其中一个属性,并写为“如果登录人的所属部门为部门1”;以所述第一业务表单(如工资表单)中的至少一部分数据作为操作对象,动作部分可以写为“那么登录人名字所在行的工资数据可以显示”。
由此,业务规则按照预定义语法格式进行表达,这样的语义表达简洁有效,且格式简单易于学习,故而一方面,使得系统管理员能够快速方便地定义业务规则的内容,而且在业务规则需要进行调整时,系统管理员也能方便地对业务规则的内容进行修改(改写),无需专门的软件开发人员,过程简单,有助于提高工作效率;另一方面,这样的预定义语法格式的规则定义方式显著提高了业务逻辑的全局可视化程度,能更方便地对规则中存在的冲突进行检查,有助于降低出错风险。
表达式操作符的示例为:比较运算符,包括但不限于{>,<,>=,<=,!=,==},其中,“!=”为“不等于”,“==”为“等于”;赋值运算符,包括但不限于{=,+=,-=},其中“+=”为“增加”,“-=”为“减少”。需要说明的是,上述各表达式操作符符号仅作为示例,并非对上述预定义语法格式的限定。
当然,如果需要进一步提高系统操作的便捷性,系统管理员也可以直接使用自然语言编写数据权限规则,如“主管副总经理可以查看其主管部门起草的所有业务单据”。后台服务器端也可以自动识别,将其转化为特定格式的(采用类自然语言的)数据权限规则,进而后台服务器端再通过简单的解析、编译,变成后台服务器端可以执行的程序代码。对于用自然语言的表达方式编写的数据权限规则,可进一步通过后台服务器端对所述规则按照词性进行分词处理,得到具体词语并且对各个词语的词性(是名词、动词,还是助词等)进行区分识别,再借助表达式操作符号来表达逻辑,将日常语言的表达形式编写的数据权限规则转化为虽然是类自然语言、但有着特定格式的数据权限规则。
上述按照词性来处理日常语言的表达形式规则,例如,将助词“的”变为“.”,“为”和“是”变为“=”,所以条件部分“如果登录人的所属部门为部门1”就可以被转化为“如果登录人.所属部门==部门1”;通过类似的转化规则,动作部分“那么登录人名字所在行的数据可以显示”就可以被转化为“那么,$_当前行.可显示=真”。“$”表示系统变量的意思,就是只有服务器才知道的变量,包括系统时间、当前登陆人、当前行、当前列等等,故“那么,$_当前行.可显示=真”的执行语句就代表了:系统变量.当前行.可显示=“真”。
经过转化为特定格式后,此时的采用了类自然语言的规则就易于被后端服务器识别、编译成程序代码化语言,即转化为可执行的机器代码,以去约束第一普通用户对第一业务表单的数据操作权限。
下面给出本申请的基于规则的数据权限控制方法的一个具体实施例:
该实施例中,第一业务表单为某公司的工资表单,其中第一行中的姓名、所属部门、特殊岗位、基本工资、特殊补贴、住房补贴和职务均是该工资表单的属性。
表1 第一业务表单为工资表单时的一个示例
姓名 所属部门 特殊岗位 基本工资 特殊补贴 住房补贴 职务
张三 部门1 10000 2000 3000 员工
李四 部门1 12000 1500 1500 员工
王五 部门1 13500 6000 3000 员工
赵六 部门1 20000 4000 3000 部门经理
周七 部门2 20000 4000 3000 部门经理
作为系统管理员,可对第一业务表单制定如下规则:
规则1:登录人能查看本人的工资,具体的按预定义语法格式编写的规则可如下:
如果工资表[某姓名]==当前登录人.姓名
那么$_当前行.可显示=真
$_当前行.可修改=假
规则2:部门经理能看除了特殊岗位人员(即特殊岗位人员行不可见)所有同部门人员的工资,具体的按预定义语法格式编写的规则可如下:
如果当前登录人.职务==部门经理并且工资表[某姓名].部门名称==当前登录人.部门名称并且工资表[某姓名].特殊岗位==否
那么$_当前行.可显示=真
$_当前行.可修改=假
规则3:部门经理能看同部门特殊岗位人员的工资行,但看不到特殊补贴的列,具体的按预定义语法格式编写的规则可如下:
如果当前登录人.职务==部门经理并且工资表[某姓名].部门名称==当前登录人.部门名称并且工资表[某姓名].特殊岗位==是
那么$_当前行.可显示=真
$_当前列.特殊补贴.可显示=假
$_当前行.可修改=假
根据以上三条规则,查询结果如下:
在第一普通用户为张三时,张三登录自己的普通用户账号,因为其职务是员工,而不是部门经理,故而其并不能在规则2和规则3的约束下去操作这两个规则的动作部分对应的数据,而按照规则1的约束,规则1的动作部分的操作对象是工资表中张三所在行的数据。在张三登录后,如果张三的第一操作请求所针对的数据也是工资表中自己名字所在行的数据,这一行就会显示出来,而且,张三对这行数据的具体操作权限是,可查看到如下表2中的数据(因当前行可显示),但不可修改。可以理解地,如果张三的第一操作请求所针对的数据是李四的工资行,因为上述规则1-3均未赋予张三可查看李四工资数据的权限,他的第一操作请求不会得到规则的允许,他无法对李四的工资数据进行包括查看在内的任何操作,除非系统管理员再为张三的该需求定义一个规则,去使得张三具有查看李四工资数据的权限。
表2 张三可以获得的数据内容
姓名 所属部门 特殊岗位 基本工资 特殊补贴 住房补贴 职务
张三 部门1 10000 2000 3000 员工
在第一普通用户为赵六时,赵六登录自己的普通用户账号,由于其为部门经理,因此应该受到规则1、规则2和规则3的同时约束。按照规则1的约束,赵六可以查看、但不可修改自己的工资行;按照规则2的约束,赵六可以查看、但不可修改所有其所在部门中所有非特殊岗位人员的工资行;按照规则3的约束,赵六还可以查看其所在部门中特殊岗位人员的工资行,只是不可以查看特殊岗位员工的特殊补贴所在列。综合起来,在赵六发出对部门1人员的工资数据操作请求后,赵六可以获得的数据内容如下表3:
表3 赵六可以获得的数据内容
姓名 所属部门 特殊岗位 基本工资 特殊补贴 住房补贴 职务
张三 部门1 10000 2000 3000 员工
李四 部门1 12000 1500 1500 员工
王五 部门1 13500 不显示 3000 员工
赵六 部门1 20000 4000 3000 部门经理
上文已经介绍过,本发明还可以调取系统自身的任意属性参与规则制定,例如,将规则4制定为:
规则4:只有在2022年1月1日之后,人力资源部人员才能修改工资表,但自己的工资表不能修改,具体的按预定义语法格式编写的规则可如下:
如果当前用户.部门==人力资源部并且工资表[某姓名]!==当前登陆人. 姓名并且系统变量.当前日期>20220101
那么$_当前行.可显示=真
那么$_当前行.可修改=真
通过规则4的示例可以进一步看出,本申请对于数据权限规则的控制极为灵活,例如,甚至可以用系统所显示的当前日期来决定同一登录人对相应的数据是否具有数据操作权限,也不要求对某部门的相关表单有数据操作权限的人一定要属于这个部门。
本发明的基于规则的数据权限控制方法,能够调取系统的任意属性、用户的任意属性、表单的任意属性、流程的任意属性等等,即以系统中任何属性进行逻辑组合运算(布尔逻辑操作)作为判断条件,使得数据表的权限控制极为灵活,也可以同时调取多个属性,能够实现多条件组合式的数据操作权限控制,使得对表单数据的查看可以精确到行和列双重限定后的每一个字段(例如,从上可以看出,赵六在查看上述工资表单时,对于不属于特殊岗位的张三和李四,赵六可以查看张三和李四在工资表单对应行中的每一列内容,但是对于属于特殊岗位的王五,赵六不可以查看王五在工资表单中对应行中的特殊补贴列内容,故对表单数据的查看是精确到行和列双重限定后的对应格的);同时,本发明的用户可以在系统管理员用户端,即可用类自然语言编写或者修改数据表的数据操作权限规则。能够灵活地适应用户需求对数据权限进行新增/调整,快速响应数据操作控制规则变更的需求,不必返回系统开发者处修改,显著减少系统维护的工作量。
在系统管理员将第一业务表单的数据操作权限规则用类自然语言定义/修改完毕之后,可通过点击系统管理员配置端界面上的“确认”图标,将前述类自然语言定义/修改的规则发送到后台服务器端,后台服务器端再进行对前述类自然语言的解析和执行,将其转化为计算机可执行的机器代码。在第一普通用户发出对第一业务表单的数据操作请求之后,后台服务器端可用前述转化后的程序,自动判别第一普通用户对第一业务表单是否有与其数据操作请求相应的数据操作权限,根据权限计算结果返回如表2和表3的格式数据,并将所第一操作请求所针对的数据返回到普通用户端展示。
优选地,所述第一业务表单是行列格式的简单表单,所述第一业务表单具有至少一个属性,所述规则中的条件部分还用于以所述第一业务表单的构成可计算关系的属性之间的计算关系进行布尔逻辑操作,并将操作结果作为判断条件。
上文已经介绍过,所述条件部分可以用于调取表单(如第一业务表单)的任意属性,参与规则制定,而进一步地,本发明的条件部分还能够用于以所述第一业务表单的构成可计算关系的属性之间的计算关系进行布尔逻辑操作,并将操作结果作为判断条件。
以第一业务表单为简单的行列格式的员工信息表为例,其属性可包括,例如,员工入职时间、员工离职时间等等,对该员工信息表而言,构成可计算关系的表单信息项之间的计算关系可为,例如,员工离职时间与员工入职时间的差值。在编写对该第一业务表单的数据权限操作规则时,除了调取员工入职时间、员工离职时间等这些属性来进行编写之外(例如,将规则编写为“如果登录人的入职时间<2010年;那么$_当前行.可显示=真”),还能够以员工离职时间与员工入职时间的差值为条件来编写规则,例如,将条件部分编写为“如果登录人的离职时间-登录人的入职时间>10年”,此时,对一个第一普通用户如张三而言,整个规则可编写为“如果登录人的离职时间-登录人的入职时间> 10年;那么$_(登录人张三信息所在的)当前行.可显示=真”。
优选地,所述第一业务表单是包括主表和至少一个子表的复杂表单,所述子表为行列格式的简单表单,所述主表和每个子表均具有至少一个属性,所述规则中的条件部分用于同时从所述主表和每个子表的所有属性中分别按需调取任何一个或者多个属性进行布尔逻辑操作,并将操作结果作为判断条件。
复杂表单的抽象形式如下:
表4 复杂表单的抽象形式示例
Figure BDA0003666263600000131
复杂表单的一个具体实例可如下:
公司情况表(主表)+基本工资表(子表1)+支付记录表(子表2)
表5 复杂表单的一个具体实例
Figure BDA0003666263600000132
Figure BDA0003666263600000141
这时候,基本工资表和支付记录表就是两个子表,可以分别设置这两个子表的数据操作权限(例如调取不同子表的不同属性,来制定规则),也可以还能够同时从所述主表和每个子表的所有属性中分别按需调取任何一个或者多个属性进行布尔逻辑操作,并将操作结果作为数据权限操作规则中的判断条件。
优选地,所述第一业务表单是包括主表和至少一个子表的复杂表单,所述子表为行列格式的简单表单,所述主表和每个子表均具有至少一个属性,所述规则中的条件部分用于以所述第一业务表单的构成可计算关系的属性之间的计算关系进行布尔逻辑操作,并将操作结果作为判断条件。
第二方面,本发明提供了一种基于规则的数据权限控制方法,所述方法包括如下步骤:
S100’,系统管理员配置端接收到系统管理员账号输入的用类自然语言定义或修改的对系统内的第一业务表单的数据操作权限规则,所述规则用于使第一普通用户对第一业务表单拥有相匹配的数据操作权限,
所述规则包括条件部分和动作部分,所述条件部分用于从所述系统内任意对象属性中按需调取一个或者多个属性进行布尔逻辑操作,并将操作结果作为判断条件;所述动作部分用于以所述第一业务表单中的数据作为操作对象,对所述第一业务表单的数据操作权限进行设定;
S200’,所述系统管理员配置端将步骤S100’中的类自然语言定义或修改的第一业务表单的数据操作权限规则发送给所述系统的后台服务器端,以便于所述后台服务器端将所述类自然语言定义或修改的第一业务表单的数据操作权限规则转化为可执行的机器代码;
S300’,所述后台服务器端接收步骤S200’中的类自然语言定义或修改的第一业务表单的数据操作权限规则,并转化为可执行的机器代码;
S400’,普通用户端接收到第一普通用户账号发出的对第一业务表单的第一操作请求,并将所述第一操作请求发送给所述系统的后台服务器端;
S500’,所述后台服务器端接收到所述第一操作请求后,根据步骤S300’中的可执行的机器代码判断所述第一普通用户是否拥有对第一操作请求所针对的数据的操作权限,如为是,则将所第一操作请求所针对的数据返回到普通用户端,供所述第一普通用户对所述数据进行第一操作;如为否,则不将所第一操作请求所针对的数据返回到普通用户端。
对步骤S100’中提到的所述“系统内任意对象属性”的介绍同上文所述。
通过如此,系统管理员定义/修改规则,后台服务器提供支持,第一普通用户就可以正常使用该系统,在系统管理员所制定的规则的约束下,具有了相匹配的数据操作权限。
优选地,在步骤S500’中,所述后台服务器端还根据所述第一业务表单从其父系以上表单继承的数据操作权限规则所对应的可执行的机器代码,来判断所述第一普通用户是否拥有对第一操作请求所针对的数据的操作权限。
具体地,第一业务表单可以是一张孤立的表单,也可以有继承关系的表单,例如拥有父系、祖系、祖系的父系、祖系的祖系……等,即父系以上表单。
一种拥有父系以上表单的情况例如为,第一业务表单是火车票表单,其父系表单可以是出行发票表单(出行发票还包括出租车票、飞机票等),祖父系表单为发票表单(发票还包括餐饮票、住宿票等)。在定义属性时,共性的属性定在上级分类上。例如:
发票表单的属性:包括发票票号、开票单位、开票金额、开(出)票日期等任何发票均共同拥有的属性;
出行发票表单的属性:在继承发票的上述属性之外,增加出发地点、出发时间、到达地点到达时间等出行发票自有的属性;
火车票表单的属性:继承出行发票的属性(包括出行发票所继承的发票的属性,和上述出行发票自有的属性),增加车次、席位等火车票自有的属性。
在权限设置中,可以直接调取父系及以上表单的属性,例如,调取祖父系表单的属性“开(出)票日期”编写规则5:超期一年的所有类别的发票由于不可报销,查询时不显示,具体的按预定义语法格式编写的规则可如下:
如果系统变量.当前日期-发票.开票日期>1年
那么系统变量.当前行.可显示=假
该条规则的含义为超过开票日期一年的发票无法查看,在该规则的限制下,对作为父系表单的出行发票表单、对作为第一业务表单的火车票表单来说,由于其继承了调取祖父系表单属性后,对祖父系表单制定的数据操作权限规则,因此第一普通用户不能查看超过开票日期一年的火车票的相关数据。
也就是说,表单是按照类别进行组织的,可以形成一个树状结构的分类,当用户的数据操作目标是第一业务表单时,在本发明的数据权限控制方法中,需要向第一业务表单的父类、父类的父类、父类的父类的父类……一直追溯到根节点取查阅所有的相关的权限规则,祖类、父类的表单权限子类也会自动继承,通过这样进行权限规则的描述,实现了最精简的权限控制策略。一般只有在父类以上表单中无从继承相应的规则时,才要求系统管理员给第一业务表单用类自然语言编写相应的规则。通过这样的继承关系,数据权限规则的作用对象就更加容易区分。
故而,在步骤S500’中,因为第一业务表单还继承了其父系以上表单的数据操作权限规则,步骤S500’不仅根据步骤S300’中的(根据系统管理员在步骤S100’用类自然语言定义或修改的第一业务表单的数据操作权限规则转化成的)可执行的机器代码,来判断第一普通用户是否具有对第一操作请求所针对的数据的操作权限,还根据第一业务表单所继承的其父系以上表单的数据操作权限规则被所述后台服务器端转化的可执行的机器代码,来判断第一普通用户是否拥有对第一操作请求所针对的数据的操作权限。
优选地,所述步骤S500’还包括,所述后台服务器端还对第一业务表单的数据操作权限规则和所述第一业务表单从其父系以上表单继承的数据操作权限规则的所有规则内容进行冲突检查。
冲突检查的意义可通过以下示例帮助理解:
如第一业务表单是一份高铁出行报销表单,其表单内容可包括出行人姓名、出行车次、票价金额等;其父系表单可以是火车出行报销表单。如果在对作为父系表单的火车出行报销表单的数据权限规则制定时,已经制定对火车出行表单中,第一普通用户不可查看票价金额;而对作为第一业务表单的高铁出行报销单,系统管理员又对其定义了第一普通用户可查看票价金额的权限,此时,显然,该第一业务表单从父系表单所继承来的、第一普通用户不可查看票价金额的权限规则,和系统管理员又给其定义的可查看票价金额的权限规则是相冲突的。故在步骤S600’中,还要对第一业务表单的数据操作权限规则和所述第一业务表单的父系以上表单的数据操作权限规则的所有规则内容进行冲突检查。解决冲突的手段则为,规则具有优先级,当发生冲突时,系统以优先级别高的权限为准。
对规则之间是否具有冲突的一种检查方式示例如下:
选取任意两条规则作为第一规则和第二规则,
若所述第一规则的条件部分和所述第二规则的条件部分的交集为空,则第一规则和第二规则之间显然不存在冲突;
若所述第一规则的条件部分和所述第二规则的条件部分的交集不为空,且在条件交集上,所述第一规则的动作部分和所述第二规则的动作部分完全相同,则因所述第一规则和所述第二规则为部分包含关系,第一规则和第二规则之间不存在冲突;
若所述第一规则的条件部分和所述第二规则的条件部分的交集不为空,且所述第一规则的动作部分和所述第二规则的动作部分不相同(可结合上文示例理解,如第一规则限制第一普通用户不能查看票价金额,第二规则又允许同一个第一普通用户可以查看票价金额),则所述第一规则和所述第二规则存在冲突关系;
重复上述步骤,直至完成对所有规则的冲突检查。
第三方面,本发明还提供了一种系统,包括后台服务器端、普通用户端和系统管理员用户配置端,所述系统能够实现如上第二方面中的方法。
第四方面,本发明还提供了一种电子设备,包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,能够实现如上第一方面所述的方法。
第五方面,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序用于实现如上第一方面所述的方法。
本领域的技术人员能够理解的是,在不冲突的前提下,上述各优选方案可以自由地组合、叠加。
应当理解,上述的实施方式仅是示例性的,而非限制性的,在不偏离本发明的基本原理的情况下,本领域的技术人员可以针对上述细节做出的各种明显的或等同的修改或替换,都将包含于本发明的权利要求范围内。

Claims (10)

1.一种基于规则的数据权限控制方法,用于系统管理员配置端,其特征在于,所述方法包括如下步骤:
S100,接收到系统管理员账号输入的用类自然语言定义或修改的针对系统内的第一业务表单的数据操作权限规则,所述规则用于使第一普通用户对第一业务表单拥有相匹配的数据操作权限,
所述规则包括条件部分和动作部分,所述条件部分用于从所述系统内任意对象属性中按需调取一个或者多个属性进行布尔逻辑操作,并将操作结果作为判断条件;所述动作部分用于以所述第一业务表单中的数据作为操作对象,对所述第一业务表单的数据操作权限进行设定;
S200,将步骤S100中的用类自然语言定义或修改的第一业务表单的数据操作权限规则发送给所述系统的后台服务器端,以便于所述后台服务器端将所述类自然语言定义或修改的第一业务表单的数据操作权限规则转化为可执行的机器代码。
2.如权利要求1所述的方法,其特征在于,所述第一业务表单是行列格式的简单表单,所述第一业务表单具有至少一个属性,所述规则中的条件部分还用于以所述第一业务表单的构成可计算关系的属性之间的计算关系进行布尔逻辑操作,并将操作结果作为判断条件。
3.如权利要求1所述的方法,其特征在于,所述第一业务表单是包括主表和至少一个子表的复杂表单,所述子表为行列格式的简单表单,所述主表和每个子表均具有至少一个属性,所述规则中的条件部分用于同时从所述主表和每个子表的所有属性中分别按需调取一个或者多个属性进行布尔逻辑操作,并将操作结果作为判断条件。
4.如权利要求1所述的方法,其特征在于,所述第一业务表单是包括主表和至少一个子表的复杂表单,所述子表为行列格式的简单表单,所述主表和每个子表均具有至少一个属性,所述规则中的条件部分用于以所述第一业务表单的构成可计算关系的属性之间的计算关系进行布尔逻辑操作,并将操作结果作为判断条件。
5.一种基于规则的数据权限控制方法,其特征在于,所述方法包括如下步骤:
S100’,系统管理员配置端接收到系统管理员账号输入的用类自然语言定义或修改的对系统内的第一业务表单的数据操作权限规则,所述规则用于使第一普通用户对第一业务表单拥有相匹配的数据操作权限,
所述规则包括条件部分和动作部分,所述条件部分用于从所述系统内任意对象属性中按需调取一个或者多个属性进行布尔逻辑操作,并将操作结果作为判断条件;所述动作部分用于以所述第一业务表单中的数据作为操作对象,对所述第一业务表单的数据操作权限进行设定;
S200’,所述系统管理员配置端将步骤S100’中的类自然语言定义或修改的第一业务表单的数据操作权限规则发送给所述系统的后台服务器端,以便于所述后台服务器端将所述类自然语言定义或修改的第一业务表单的数据操作权限规则转化为可执行的机器代码;
S300’,所述后台服务器端接收步骤S200’中的类自然语言定义或修改的第一业务表单的数据操作权限规则,并转化为可执行的机器代码;
S400’,普通用户端接收到第一普通用户账号发出的对第一业务表单的第一操作请求,并将所述第一操作请求发送给所述系统的后台服务器端;
S500’,所述后台服务器端接收到所述第一操作请求后,根据步骤S300’中的可执行的机器代码判断所述第一普通用户是否拥有对第一操作请求所针对的数据的操作权限,如为是,则将所第一操作请求所针对的数据返回到普通用户端,供所述第一普通用户对所述数据进行第一操作;如为否,则不将所第一操作请求所针对的数据返回到普通用户端。
6.如权利要求5所述的方法,其特征在于,在步骤S500’中,所述后台服务器端还根据所述第一业务表单从其父系以上表单继承的数据操作权限规则所对应的可执行的机器代码,来判断所述第一普通用户是否拥有对第一操作请求所针对的数据的操作权限。
7.如权利要求6所述的方法,其特征在于,所述步骤S500’还包括,所述后台服务器端还对第一业务表单的数据操作权限规则和所述第一业务表单从其父系以上表单继承的数据操作权限规则的所有规则内容进行冲突检查。
8.一种系统,其特征在于:包括后台服务器端、普通用户端和系统管理员配置端,所述系统能够实现如权利要求5-7任一项所述的方法。
9.一种电子设备,其特征在于:包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,能够实现如权利要求1-4中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序用于实现如权利要求1-4中任一项所述的方法。
CN202210592930.5A 2022-05-27 2022-05-27 基于规则的数据权限控制方法、系统、电子设备和介质 Active CN115186289B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210592930.5A CN115186289B (zh) 2022-05-27 2022-05-27 基于规则的数据权限控制方法、系统、电子设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210592930.5A CN115186289B (zh) 2022-05-27 2022-05-27 基于规则的数据权限控制方法、系统、电子设备和介质

Publications (2)

Publication Number Publication Date
CN115186289A true CN115186289A (zh) 2022-10-14
CN115186289B CN115186289B (zh) 2023-06-27

Family

ID=83512651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210592930.5A Active CN115186289B (zh) 2022-05-27 2022-05-27 基于规则的数据权限控制方法、系统、电子设备和介质

Country Status (1)

Country Link
CN (1) CN115186289B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101026647A (zh) * 2007-04-09 2007-08-29 中国网络通信集团公司 电信收入稽核动态分级管理系统及方法
US20120150912A1 (en) * 2010-12-09 2012-06-14 International Business Machines Corporation Hierarchical multi-tenancy management of system resources in resource groups
CN107392053A (zh) * 2017-08-11 2017-11-24 四川长虹电器股份有限公司 一种企业员工信息数据库中的数据权限控制方法
CN109522707A (zh) * 2018-10-30 2019-03-26 珠海伟诚科技股份有限公司 一种基于角色和资源的用户数据读写安全权限控制方法及系统
CN110533385A (zh) * 2019-08-08 2019-12-03 国云科技股份有限公司 一种基于角色的多表多字段的数据权限控制方法
CN110704871A (zh) * 2019-09-23 2020-01-17 北京百分点信息科技有限公司 一种权限管理方法及装置
CN110941837A (zh) * 2019-11-11 2020-03-31 北京仁科互动网络技术有限公司 一种基于元数据的数据权限配置方法及系统
CN114202319A (zh) * 2022-02-21 2022-03-18 南京云档信息科技有限公司 一种基于混合类元数据方案的档案管理系统
CN114239504A (zh) * 2021-12-21 2022-03-25 北京希瑞亚斯科技有限公司 表单配置方法、装置、设备、可读存储介质及程序产品
CN114254371A (zh) * 2022-02-11 2022-03-29 树根互联股份有限公司 数据权限处理方法、装置及服务器

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101026647A (zh) * 2007-04-09 2007-08-29 中国网络通信集团公司 电信收入稽核动态分级管理系统及方法
US20120150912A1 (en) * 2010-12-09 2012-06-14 International Business Machines Corporation Hierarchical multi-tenancy management of system resources in resource groups
CN107392053A (zh) * 2017-08-11 2017-11-24 四川长虹电器股份有限公司 一种企业员工信息数据库中的数据权限控制方法
CN109522707A (zh) * 2018-10-30 2019-03-26 珠海伟诚科技股份有限公司 一种基于角色和资源的用户数据读写安全权限控制方法及系统
CN110533385A (zh) * 2019-08-08 2019-12-03 国云科技股份有限公司 一种基于角色的多表多字段的数据权限控制方法
CN110704871A (zh) * 2019-09-23 2020-01-17 北京百分点信息科技有限公司 一种权限管理方法及装置
CN110941837A (zh) * 2019-11-11 2020-03-31 北京仁科互动网络技术有限公司 一种基于元数据的数据权限配置方法及系统
CN114239504A (zh) * 2021-12-21 2022-03-25 北京希瑞亚斯科技有限公司 表单配置方法、装置、设备、可读存储介质及程序产品
CN114254371A (zh) * 2022-02-11 2022-03-29 树根互联股份有限公司 数据权限处理方法、装置及服务器
CN114202319A (zh) * 2022-02-21 2022-03-18 南京云档信息科技有限公司 一种基于混合类元数据方案的档案管理系统

Also Published As

Publication number Publication date
CN115186289B (zh) 2023-06-27

Similar Documents

Publication Publication Date Title
CN112967025B (zh) 信息工程监理项目形象进度管理系统
CN111815424B (zh) 信息系统工程监理项目成本核算管理系统
US20220215119A1 (en) Providing an input dataset into an input slot of a computational step of a data pipeline
CN111815281B (zh) 信息系统工程监理项目招投标管理系统
US20110321154A1 (en) Systems and methods for generating constraints for use in access control
US20040162737A1 (en) Agreement management system
Ellis et al. Computer science and office information systems
US11614924B1 (en) Systems, methods, user interfaces, and development environments for a data manager
CN115390821A (zh) 一种面向自然语言无代码编程的软件应用构建方法
US8176019B2 (en) Extending the sparcle privacy policy workbench methods to other policy domains
US8073717B2 (en) Systems for digital management of underwriting insurance contracts
US8726336B2 (en) Authorizations for analytical reports
CN108416532A (zh) 能源审计电子化信息系统
KR20080001246A (ko) 데이터베이스 품질관리 방법
CN115186289B (zh) 基于规则的数据权限控制方法、系统、电子设备和介质
US8073716B2 (en) Methods for digital management of underwriting insurance contracts
KR100792322B1 (ko) 데이터베이스 품질관리 프레임워크
KR100796905B1 (ko) 데이터베이스 품질관리 시스템
RU105492U1 (ru) Автоматизированная система реализации запросов органа управления к элементам подчиненной структуры на основе модифицированных таблиц excel
Melchor-Ferrer et al. Web-Based System to Improve Resource Efficiency in University Departments
KR102566184B1 (ko) 고객언어관리 애플리케이션의 사용자 인터페이스 방법 및 그 시스템
CN114722250B (zh) 一种基于配置实现的数据水平和垂直权限过滤的方法
US11836496B2 (en) Multilayered generation and processing of computer instructions
Joosten Deriving functional specification from business requirements with ampersand
Chandramouli A policy validation framework for enterprise authorization specification

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
GR01 Patent grant
GR01 Patent grant