CN114138849A - 多租户数据权限控制方法、装置、计算机及可读存储介质 - Google Patents

多租户数据权限控制方法、装置、计算机及可读存储介质 Download PDF

Info

Publication number
CN114138849A
CN114138849A CN202111441131.XA CN202111441131A CN114138849A CN 114138849 A CN114138849 A CN 114138849A CN 202111441131 A CN202111441131 A CN 202111441131A CN 114138849 A CN114138849 A CN 114138849A
Authority
CN
China
Prior art keywords
operation instruction
query
request
service
instruction
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
Application number
CN202111441131.XA
Other languages
English (en)
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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN202111441131.XA priority Critical patent/CN114138849A/zh
Publication of CN114138849A publication Critical patent/CN114138849A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/2457Query processing with adaptation to user needs
    • 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/242Query formulation
    • G06F16/2433Query languages
    • 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/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • 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/24553Query execution of query operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/08Insurance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种多租户数据权限控制方法,应用于数据处理技术领域,用于解决现有技术对业务代码的侵入性较强,并且大部分代码都是重复代码,导致修改工作量大,容易出错的技术问题。本发明提供的方法包括:获取一业务的请求并调用所述业务对应的当前标识;判断标识上是否添加有注解,注解包括预设过滤条件;若是,则对请求中的操作指令添加过滤条件,以生成更新的操作指令;将更新的操作指令发送至数据库,以使数据库执行更新的操作指令并返回执行结果。本方法能够灵活的处理单表、多表联合查询的情况,并统一对业务操作的增、删、改、查进行增强,无需修改业务代码,降低了工作量,减少代码出错的概率。同时,本发明还涉及区块链技术。

Description

多租户数据权限控制方法、装置、计算机及可读存储介质
技术领域
本发明涉及数据处理技术领域,尤其涉及一种多租户数据权限控制方法、装置、计算机及可读存储介质。
背景技术
随着移动展业、招聘产品在海外市场的进一步推广,引入多租户管理系统。各个业务系统都需要对接多租户系统,对应不同的租户有不同的数据权限,所享有的功能也不一样。
多租户系统管理着所有的租户信息,用户业务请求先经过租户认证系统,由租户认证系统通过多租户系统获取到租户信息,然后将当前用户的租户信息传到业务系统,最后由业务系统执行相应的业务操作。
然而,在现有的业务系统中,当需要进行新增、查询以及修改保单信息等业务操作时,都需要对业务系统的内部代码进行修改,从而对业务代码的侵入性较强,并且大部分代码都是重复代码,导致修改工作量大,容易出错,进而给用户带来不便。
发明内容
本发明实施例提供了一种多租户数据权限控制方法、装置、计算机设备及存储介质,以解决在现有的业务系统中,当需要进行新增、查询以及修改保单信息等业务操作时,都需要对业务系统的内部代码进行修改,从而对业务代码的侵入性较强,并且大部分代码都是重复代码,导致修改工作量大,容易出错的技术问题。
本发明第一方面提出了一种多租户数据权限控制方法,所述方法包括:
获取一业务的请求并调用所述业务对应的当前标识;
判断所述当前标识上是否添加有注解,所述注解包括所述业务的过滤条件;
若是,则对所述请求中的操作指令添加所述过滤条件,以生成更新的操作指令;
将所述更新的操作指令发送至数据库,以使所述数据库执行所述更新的操作指令并返回执行结果。
在其中一个实施例中,
当所述当前标识为mapper类时,所述对所述请求中的操作指令添加所述过滤条件的步骤包括:
对所述请求中的所述mapper类中的所有操作指令添加所述过滤条件,以生成全更新的操作指令;
当所述当前标识为mapper方法时,所述对所述请求中的操作指令添加所述过滤条件的步骤包括:
对所述请求中的所述mapper方法执行的操作指令添加所述过滤条件,以生成部分更新的操作指令。
在其中一个实施例中,当所述操作指令为查询指令时,所述对所述请求中的操作指令添加所述过滤条件的步骤包括:
通过Druid将所述查询指令转换为SQLStatement对象,以获取SQLSelectQuery查询对象;
根据所述SQLSelectQuery查询对象确定所述操作指令对应的查询类型,所述查询类型包括子查询、join查询以及union查询,所述查询指令对应的预设过滤条件包括各个查询类型对应的子权限调节;
对所述请求中的操作指令添加确定出的查询类型所对应的子权限调节。
在其中一个实施例中,
当所述操作指令为新增指令时,所述对所述请求中的操作指令添加所述过滤条件的步骤包括:
获取被代理对象StatementHandler,以得到其属性MappedStatement对象;
根据所述MappedStatement对象确定所述操作指令对应的操作类型,并将所述请求中的租户id保存至对应的业务数据表中。
在其中一个实施例中,
当所述操作指令为修改、删除指令时,所述对所述请求中的操作指令添加所述过滤条件的步骤包括:
获取被代理对象StatementHandler,以得到其属性MappedStatement对象;
根据所述MappedStatement对象确定所述操作指令对应的操作类型,并在所述操作指令上添加所述请求中的租户id。
在其中一个实施例中,可以将上述多租户数据权限控制方法的结果上传至区块链中,以使得所述区块链对所述多租户数据权限控制方法的结果进行加密存储。
本发明第二方面提出了一种多租户数据权限控制装置,所述装置包括:
获取模块,用于获取一业务的请求并调用所述业务对应的当前标识;
判断模块,用于判断所述标识上是否添加有注解,所述注解包括所述业务的过滤条件;
处理模块,用于若判断到所述标识上添加有注解,则对所述请求中的操作指令添加所述过滤条件,以生成更新的操作指令;
执行模块,用于将所述更新的操作指令发送至数据库,以使所述数据库执行所述更新的操作指令并返回执行结果。
其中,上述多租户数据权限控制装置中;
当所述当前标识为mapper类时,所述处理模块具体用于:
对所述请求中的所述mapper类中的所有操作指令添加所述过滤条件,以生成全更新的操作指令;
当所述当前标识为mapper方法时,所述处理模块具体用于:
对所述请求中的所述mapper方法执行的操作指令添加所述过滤条件,以生成部分更新的操作指令。
其中,上述多租户数据权限控制装置中,当所述操作指令为查询指令时,所述处理模块具体用于:
通过Druid将所述查询指令转换为SQLStatement对象,以获取SQLSelectQuery查询对象;
根据所述SQLSelectQuery查询对象确定所述操作指令对应的查询类型,所述查询类型包括子查询、join查询以及union查询,所述查询指令对应的预设过滤条件包括各个查询类型对应的子权限调节;
对所述请求中的操作指令添加确定出的查询类型所对应的子权限调节。
其中,上述多租户数据权限控制装置中,
当所述操作指令为新增指令时,所述处理模块具体用于:
获取被代理对象StatementHandler,以得到其属性MappedStatement对象;
根据所述MappedStatement对象确定所述操作指令对应的操作类型,并将所述请求中的租户id保存至对应的业务数据表中。
其中,上述多租户数据权限控制装置中,
当所述操作指令为修改、删除指令时,所述处理模块具体用于:
获取被代理对象StatementHandler,以得到其属性MappedStatement对象;
根据所述MappedStatement对象确定所述操作指令对应的操作类型,并在所述操作指令上添加所述请求中的租户id。
本发明第三方面提出了一种计算机设备,其包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上面所述多租户数据权限控制方法的步骤。
本发明第四方面提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上面所述多租户数据权限控制方法的步骤。
本发明提出的多租户数据权限控制方法、装置、计算机设备及存储介质,通过获取一业务的请求并调用所述业务对应的当前标识,进一步的,通过预设程序判断所述标识上是否添加有注解,该注解包括预设过滤条件,若检测到当前业务对应的当前标识中添加有注解时,则需要对当前请求中的操作指令添加上述过滤条件,以生成更新的操作指令,最后将所述更新的操作指令发送至数据库,以使所述数据库执行所述更新的操作指令并返回执行结果。通过上述方式能够灵活的处理单表、多表联合查询的情况,适配多种场景。统一对各个业务操作的增、删、改、查进行增强,无需修改业务代码,与业务代码结构解耦,降低了工作量,减少代码出错的概率。而且配合自定义注解,可以灵活处理每个业务场景是否需要进行数据过滤。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中多租户数据权限控制方法的一应用环境示意图;
图2是本发明一实施例中多租户数据权限控制方法的一流程图;
图3是本发明一实施例中多租户数据权限控制装置的结构示意图;
图4是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的若干实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
本申请提供的多租户数据权限控制方法,可应用在如图1的应用环境中,其中,该计算机设备可通过网络与服务器进行通信。其中,该计算机设备包括但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一实施例中,如图2所示,提供一种多租户数据权限控制方法,以该方法应用在图1中的计算机设备为例进行说明,包括如下步骤S101至S104。
一种多租户数据权限控制方法,在其中一个实施例中,该方法至少包括步骤S101~S104。该方法主要用于解决在保险技术领域中,当用户需要进行新增、查询保单等业务操作时,都需要对其内部代码进行修改,然而此种做法对业务代码的侵入性比较强,导致修改工作量大、容易出错的问题。
具体的,本实施例提供的多租户数据权限控制方法包括以下步骤:
S101:获取业务的请求并调用所述业务对应的当前标识,所述当前标识为mapper类或者mapper方法。
具体的,在本实施例中,该多租户数据权限控制方法运用在多租户管理系统、租户认证系统以及数据库之间。其中,多租户系统管理着所有的租户信息,用户业务请求先经过租户认证系统,由租户认证系统通过多租户系统获取到租户信息,然后将当前用户的租户信息传到业务系统,最后由业务系统执行相应的业务操作。
因此,在本实施例中,首先需要获取用户的业务请求,该业务请求具体可以为查询保单信息、新增保单信息、修改保单信息以及删除保单信息等。进一步的,用户可通过显示终端向业务系统发起业务请求,当业务系统接收到该业务请求时,会立即调用出与该业务对应的当前标识,其中需要说明的是,该标识为java中特有的标识,其本质为mapper。
其中,该mapper是一个可以实现任意MyBatis通用方法的框架,项目提供了常规的增删改查操作以及Example相关的单表操作,节省系统的运算时间。
S102:判断所述标识上是否添加有注解,所述注解包括所述业务的过滤条件。
其中需要说明的是,在本步骤中,当业务系统接收到了租户发送的业务请求,并且该业务请求中已经附加有对应的标识时,本步骤会立即判断该标识上是否预先添加了注解,其中,该注解具体为@DataFilter,并且该注解@DataFilter中包含有预设的过滤条件,实施时,通过该过滤条件在上述数据库中筛选出需要办理的业务,以提升业务办理的效率。
S103:若是,则对所述请求中的操作指令添加所述过滤条件,以生成更新的操作指令。
在本步骤中,首先需要说明的是,若检测到上述标识中含有注解@DataFilter时,则立即对该请求中的操作指令添加上该注解@DataFilter包含的过滤条件,以生成全更新的操作指令。其中,上述过滤条件能够对请求中的操作指令起到约束作用,以实现对数据的筛选效果。
S104:将所述更新的操作指令发送至数据库,以使所述数据库执行所述更新的操作指令并返回执行结果。
最后,在本步骤中,通过上述步骤S101至步骤S103获取到更新的操作指令之后,本步骤会将上述更新的操作指令发送至数据库,该数据库会根据该更新的操作指令中的过滤条件在其内部进行筛选,以快速、准确的获取到该业务请求对应的保单数据。
通过上述步骤能够灵活的处理单表、多表联合查询的情况,适配多种场景。统一对各个业务操作的增、删、改、查进行增强,无需修改业务代码,与业务代码结构解耦,降低了工作量,减少代码出错的概率。而且配合自定义注解,可以灵活处理每个业务场景是否需要进行数据过滤。
在另外一个实施例中,该保单数据更新方法包括步骤S1031~S1032。
根据业务系统各个业务功能的实际情况,对需要进行多租户数据过滤的数据库操作,在相应的mapper类或者mapper方法上加上注解,并注明需要进行数据过滤的表名和字段名。
在本实施例中,首先需要说明的是,上述业务对应的标识的本质为mapper,该mapper指的是java类,在开发java应用的过程中,当使用mybatis框架时,数据库操作层面的java类一般就叫mapper类。对数据库数据进行增删改查,都会调用mapper类。具体的,该mapper包括mapper类以及mapper方法,进一步的,当业务请求中的标识为mapper类时,则执行步骤S1031,;当业务请求中的标识为mapper方法时,则执行步骤S1032。
S1031:对所述请求中的所述mapper类中的所有操作指令添加所述过滤条件,以生成全更新的操作指令。
在本实施例中,首先需要说明的是,当租户发送出的业务请求中附加有标识,且该标识为mapper类时,说明当前mapper类下的所有操作指令都需要进行权限过滤,其中,操作指令的本质为sql语句,mapper类的属性为tableName。
进一步的,本步骤会对所述请求中的所述mapper类中的所有操作指令添加所述过滤条件,以生成全更新的操作指令,即在sql语句上添加过滤条件,并且可以根据需要进行多租户数据权过滤的表和字段。
S1032:对所述请求中的所述mapper方法执行的操作指令添加所述过滤条件,以生成部分更新的操作指令。
在本实施例中,首先需要说明的是,当租户发送出的业务请求中附加有标识,且该标识为mapper方法时,说明当前mapper方法所执行的操作指令都需要进行权限过滤,其中,操作指令的本质为sql语句,mapper方法的属性为columnName,并且可以根据需要进行多租户数据权过滤的表和字段。
进一步的,本步骤会对所述请求中的所述mapper方法所执行的操作指令添加过滤条件,以生成部分更新的操作指令,即在部分spl语句上添加过滤条件。
通过上述步骤能够灵活的处理单表、多表联合查询的情况,适配多种场景。统一对各个业务操作的增、删、改、查进行增强,无需修改业务代码,与业务代码结构解耦,降低了工作量,减少代码出错的概率。而且配合自定义注解,可以灵活处理每个业务场景是否需要进行数据过滤。
在另外一个实施例中,该保单数据更新方法包括步骤S1033~S1035。
该多租户数据权限控制方法运用在多租户管理系统、租户认证系统以及数据库之间。其中,多租户系统管理着所有的租户信息,用户业务请求先经过租户认证系统,由租户认证系统通过多租户系统获取到租户信息,然后将当前用户的租户信息传到业务系统,最后由业务系统执行相应的业务操作。
在本实施例中,首先需要说明的是,本实施例首先会从请求上下文中获取到当前登录用户的租户id,如果无法获取到租户id,则说明这次请求未通过多租户认证系统,不允许其查询数据,直接返回空数据集合。
进一步的,根据当前执行的mapper方法,判断方法上是否加了注解@DataFilter,方法上没加则判断mapper类上是否有加注解@DataFilter。如果mapper类上和当前执行的方法上都没有加注解,说明这个业务场景下不需要根据租户id对数据进行权限控制,即执行sql语句无需将租户id作为过滤条件。
在本实施例中,会根据业务系统各个业务功能的实际情况,对需要进行多租户数据过滤的数据库操作,在相应的mapper类或者mapper方法上加上注解,并注明需要进行数据过滤的表名和字段名。
S1033:通过Druid将所述查询指令转换为SQLStatement对象,以获取SQLSelectQuery查询对象;根据所述SQLSelectQuery查询对象确定所述操作指令对应的查询类型,所述查询类型包括子查询、join查询以及union查询,所述查询指令对应的预设过滤条件包括各个查询类型对应的子权限调节;对所述请求中的操作指令添加确定出的查询类型所对应的子权限调节。
进一步的,在本实施例中,需要说明的是,会预先自定义出第一拦截器DataAuthInterceptor1,以实现拦截Mybatis拦截器Interceptor,并且在本步骤中,拦截Mybatis执行器Executor的query方法包括步骤S1033至步骤S1035。
具体的,当操作指令为查询指令时,本步骤会通过Druid中的工具将所述查询指令转换为SQLStatement对象,以获取SQLSelectQuery查询对象,其中,SQLStatement对象为SQLUtils.parseStatements(sql,"mysql")。
在获取到SQLSelectQuery查询对象后,会根据所述SQLSelectQuery查询对象确定所述操作指令对应的查询类型,所述查询类型包括子查询、join查询以及union查询,所述查询指令对应的预设过滤条件包括各个查询类型对应的子权限调节;对所述请求中的操作指令添加确定出的查询类型所对应的子权限调节。
其中,Druid是一种高效的数据查询系统,主要解决的是对于大量的基于时序的数据进行聚合查询。数据可以实时摄入,进入到Druid后立即可查,同时数据是几乎是不可变。通常是基于时序的事实事件,事实发生后进入Druid,外部系统就可以对该事实进行查询。
S1034:获取被代理对象StatementHandler,以得到其属性MappedStatement对象;根据所述MappedStatement对象确定所述操作指令对应的操作类型,并将所述请求中的租户id保存至对应的业务数据表中。
进一步的,在本实施例中,需要说明的是,会预先自定义出第二拦截器DataAuthInterceptor2,以实现Mybatis拦截器Interceptor,拦截Mybatis处理器StatementHandler的prepare方法,拦截新增、修改、删除对应的sql。
具体的,当操作指令为新增指令时,首先获取被代理对象StatementHandler,以得到其属性MappedStatement对象;根据所述MappedStatement对象确定所述操作指令对应的操作类型,并在所述操作指令上添加所述请求中的租户id。最后,对操作指令添加上数据权限过滤条件后,将该操作指令发送至数据库,以使数据库执行该操作指令并返回结果。
其中,Interceptor是一种拦截器,其主要作用是在Action执行之前和Result执行之后进行一些特定功能的处理机制。
S1035:获取被代理对象StatementHandler,以得到其属性MappedStatement对象;根据所述MappedStatement对象确定所述操作指令对应的操作类型,并在所述操作指令上添加所述请求中的租户id。
具体的,在本步骤中,需要说明的是,会预先自定义出第二拦截器DataAuthInterceptor2,以实现Mybatis拦截器Interceptor,拦截Mybatis处理器StatementHandler的prepare方法,拦截新增、修改、删除对应的sql。
具体的,当操作指令为修改、删除指令时,获取被代理对象StatementHandler,以得到其属性MappedStatement对象;根据所述MappedStatement对象确定所述操作指令对应的操作类型,并在所述操作指令上添加所述请求中的租户id。最后,对操作指令添加上数据权限过滤条件后,将该操作指令发送至数据库,以使数据库执行该操作指令并返回结果。
因此,本实施例能够灵活的处理单表、多表联合查询的情况,适配多种场景。统一对各个业务操作的增、删、改、查进行增强,无需修改业务代码,与业务代码结构解耦,降低了工作量,减少代码出错的概率。而且配合自定义注解,可以灵活处理每个业务场景是否需要进行数据过滤。并且在移动展业、招聘产品不同的业务系统只需配置拦截器,在需要进行数据过滤的mapper文件上加上注解,即可实现多租户数据过滤的功能。
综上,本申请提出的多租户数据权限控制方法通过获取一业务的请求并调用所述业务对应的当前标识,进一步的,通过预设程序判断所述标识上是否添加有注解,该注解包括预设过滤条件,若检测到当前业务对应的当前标识中添加有注解时,则需要对当前请求中的操作指令添加上述过滤条件,以生成更新的操作指令,最后将所述更新的操作指令发送至数据库,以使所述数据库执行所述更新的操作指令并返回执行结果。通过上述方式能够灵活的处理单表、多表联合查询的情况,适配多种场景。统一对各个业务操作的增、删、改、查进行增强,无需修改业务代码,与业务代码结构解耦,降低了工作量,减少代码出错的概率。而且配合自定义注解,可以灵活处理每个业务场景是否需要进行数据过滤。
在一个可选的实施方式中,还可以将上述多租户数据权限控制方法的结果上传至区块链中。
具体地,基于所述多租户数据权限控制方法的结果得到对应的摘要信息,具体来说,摘要信息由所述多租户数据权限控制方法的结果进行散列处理得到,比如利用sha256s算法处理得到。将摘要信息上传至区块链可保证其安全性和对用户的公正透明性。用户可以从区块链中下载得该摘要信息,以便查证所述多租户数据权限控制方法的结果是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
在一实施例中,提供了一种多租户数据权限控制装置100,该多租户数据权限控制装置100与上述实施例中的多租户数据权限控制方法一一对应,如图4所示,该多租户数据权限控制装置100包括:获取模块11、判断模块12、处理模块13以及执行模块14。各功能模块的详细说明如下:
获取模块11,用于获取一业务的请求并调用所述业务对应的当前标识,所述当前标识为mapper类或者mapper方法;
判断模块12,用于判断所述标识上是否添加有注解,所述注解包括所述业务的过滤条件;
处理模块13,用于若判断到所述标识上添加有注解,则对所述请求中的操作指令添加所述过滤条件,以生成更新的操作指令;
执行模块14,用于将所述更新的操作指令发送至数据库,以使所述数据库执行所述更新的操作指令并返回执行结果。
其中,上述多租户数据权限控制装置100中,业务对应的标识为mapper类以及mapper方法;
当所述当前标识为mapper类时,所述处理模块13具体用于:
对所述请求中的所述mapper类中的所有操作指令添加所述过滤条件,以生成全更新的操作指令;
当所述当前标识为mapper方法时,所述处理模块13具体用于:
对所述请求中的所述mapper方法执行的操作指令添加所述过滤条件,以生成部分更新的操作指令。
其中,上述多租户数据权限控制装置100中,当所述操作指令为查询指令时,所述处理模块13具体用于:
通过Druid将所述查询指令转换为SQLStatement对象,以获取SQLSelectQuery查询对象;
根据所述SQLSelectQuery查询对象确定所述操作指令对应的查询类型,所述查询类型包括子查询、join查询以及union查询,所述查询指令对应的预设过滤条件包括各个查询类型对应的子权限调节;
对所述请求中的操作指令添加确定出的查询类型所对应的子权限调节。
其中,上述多租户数据权限控制装置100中,
当所述操作指令为新增指令时,所述处理模块13具体用于:
获取被代理对象StatementHandler,以得到其属性MappedStatement对象;
根据所述MappedStatement对象确定所述操作指令对应的操作类型,并将所述请求中的租户id保存至对应的业务数据表中。
其中,上述多租户数据权限控制装置100中,
当所述操作指令为修改、删除指令时,所述处理模块13具体用于:
获取被代理对象StatementHandler,以得到其属性MappedStatement对象;
根据所述MappedStatement对象确定所述操作指令对应的操作类型,并在所述操作指令上添加所述请求中的租户id。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一实施例提供的多租户数据权限控制方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任意一实施例提供的多租户数据权限控制方法的步骤。
其中上述模块/单元中的“第一”和“第二”的意义仅在于将不同的模块/单元加以区分,并不用于限定哪个模块/单元的优先级更高或者其它的限定意义。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式。
关于活体人脸图像的检测装置的具体限定可以参见上文中对于多租户数据权限控制方法的限定,在此不再赘述。上述活体人脸图像的检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部服务器通过网络连接通信。该计算机程序被处理器执行时以实现一种多租户数据权限控制方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中多租户数据权限控制方法的步骤,例如图2所示的步骤101至步骤104及该方法的其它扩展和相关步骤的延伸。或者,处理器执行计算机程序时实现上述实施例中活体人脸图像的检测装置的各模块/单元的功能,例如图3所示模块11至模块14的功能。为避免重复,这里不再赘述。
所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。
所述存储器可以集成在所述处理器中,也可以与所述处理器分开设置。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中多租户数据权限控制方法的步骤,例如图2所示的步骤101至步骤104及该方法的其它扩展和相关步骤的延伸。或者,计算机程序被处理器执行时实现上述实施例中活体人脸图像的检测装置的各模块/单元的功能,例如图3所示模块11至模块14的功能。为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (10)

1.一种多租户数据权限控制方法,其特征在于,所述方法包括:
获取业务的请求并调用所述业务对应的当前标识,所述当前标识为mapper类或者mapper方法;
判断所述当前标识上是否添加有注解,所述注解包括所述业务的过滤条件;
若是,则对所述请求中的操作指令添加所述过滤条件,以生成更新的操作指令;
将所述更新的操作指令发送至数据库,以使所述数据库执行所述更更新的操作指令并返回执行结果。
2.根据权利要求1所述的多租户数据权限控制方法,其特征在于,所述对所述请求中的操作指令添加所述过滤条件的步骤包括:
当所述当前标识为mapper类时,对所述请求中的所述mapper类中的所有操作指令添加所述过滤条件;
当所述当前标识为mapper方法时,对所述请求中的所述mapper方法执行的操作指令添加所述过滤条件。
3.根据权利要求1所述的多租户数据权限控制方法,其特征在于,当所述操作指令为查询指令时,所述对所述请求中的操作指令添加所述过滤条件的步骤包括:
通过Druid将所述查询指令转换为SQLStatement对象,以获取SQLSelectQuery查询对象;
根据所述SQLSelectQuery查询对象确定所述操作指令对应的查询类型,所述查询类型包括子查询、join查询以及union查询,所述查询指令对应的预设过滤条件包括各个查询类型对应的子权限调节;
对所述请求中的操作指令添加确定出的查询类型所对应的子权限调节。
4.根据权利要求1所述的多租户数据权限控制方法,其特征在于,
当所述操作指令为新增指令时,所述对所述请求中的操作指令添加所述过滤条件的步骤包括:
获取被代理对象StatementHandler,以得到属性MappedStatement对象;
根据所述MappedStatement对象确定所述操作指令对应的操作类型,并将所述请求中的租户id保存至对应的业务数据表中。
5.根据权利要求1所述的多租户数据权限控制方法,其特征在于,
当所述操作指令为修改、删除指令时,所述对所述请求中的操作指令添加所述过滤条件的步骤包括:
获取被代理对象StatementHandler,以得到属性MappedStatement对象;
根据所述MappedStatement对象确定所述操作指令对应的操作类型,并在所述操作指令上添加所述请求中的租户id。
6.一种多租户数据权限控制装置,其特征在于,所述装置包括:
获取模块,用于获取一业务的请求并调用所述业务对应的当前标识;
判断模块,用于判断所述标识上是否添加有注解,所述注解包括所述业务的过滤条件;
处理模块,用于若判断到所述标识上添加有注解,则对所述请求中的操作指令添加所述过滤条件,以生成更新的操作指令;
执行模块,用于将所述更新的操作指令发送至数据库,以使所述数据库执行所述更新的操作指令并返回执行结果。
7.根据权利要求6所述的多租户数据权限控制装置,其特征在于,业务对应的标识为mapper类以及mapper方法;
当所述当前标识为mapper类时,所述处理模块具体用于:
对所述请求中的所述mapper类中的所有操作指令添加所述过滤条件,以生成全更新的操作指令;
当所述当前标识为mapper方法时,所述处理模块具体用于:
对所述请求中的所述mapper方法执行的操作指令添加所述过滤条件,以生成部分更新的操作指令。
8.根据权利要求6所述的多租户数据权限控制装置,其特征在于,当所述操作指令为查询指令时,所述处理模块具体用于:
通过Druid将所述查询指令转换为SQLStatement对象,以获取SQLSelectQuery查询对象;
根据所述SQLSelectQuery查询对象确定所述操作指令对应的查询类型,所述查询类型包括子查询、join查询以及union查询,所述查询指令对应的预设过滤条件包括各个查询类型对应的子权限调节;
对所述请求中的操作指令添加确定出的查询类型所对应的子权限调节。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述多租户数据权限控制方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述多租户数据权限控制方法的步骤。
CN202111441131.XA 2021-11-30 2021-11-30 多租户数据权限控制方法、装置、计算机及可读存储介质 Pending CN114138849A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111441131.XA CN114138849A (zh) 2021-11-30 2021-11-30 多租户数据权限控制方法、装置、计算机及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111441131.XA CN114138849A (zh) 2021-11-30 2021-11-30 多租户数据权限控制方法、装置、计算机及可读存储介质

Publications (1)

Publication Number Publication Date
CN114138849A true CN114138849A (zh) 2022-03-04

Family

ID=80389722

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111441131.XA Pending CN114138849A (zh) 2021-11-30 2021-11-30 多租户数据权限控制方法、装置、计算机及可读存储介质

Country Status (1)

Country Link
CN (1) CN114138849A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116132534A (zh) * 2022-07-01 2023-05-16 马上消费金融股份有限公司 业务请求的存储方法、装置、设备及存储介质
CN116542797A (zh) * 2023-05-11 2023-08-04 深圳市海德盈富信息技术策划有限公司 一种基于Saas平台的企业财务数据管理方法及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116132534A (zh) * 2022-07-01 2023-05-16 马上消费金融股份有限公司 业务请求的存储方法、装置、设备及存储介质
CN116132534B (zh) * 2022-07-01 2024-03-08 马上消费金融股份有限公司 业务请求的存储方法、装置、设备及存储介质
CN116542797A (zh) * 2023-05-11 2023-08-04 深圳市海德盈富信息技术策划有限公司 一种基于Saas平台的企业财务数据管理方法及系统

Similar Documents

Publication Publication Date Title
US11196772B2 (en) Data access policies
US10671308B2 (en) Private and fault-tolerant storage of segmented data
US20200242595A1 (en) Systems, methods, and apparatuses utilizing a blended blockchain ledger in a cloud service to address local storage
CN108694189B (zh) 共同所有权的数据库系统的管理
US20200394321A1 (en) Document redaction and reconciliation
WO2020232884A1 (zh) 数据表迁移方法、装置、计算机设备和存储介质
WO2019226580A1 (en) Blockchain-anchored smart documents
CN114138849A (zh) 多租户数据权限控制方法、装置、计算机及可读存储介质
US20200134066A1 (en) Convolutional and ephemeral datachains
US11645268B2 (en) Database world state performance improvement
CN111865691B (zh) 基于人工智能的报警文件分发方法、装置、设备和介质
CN112508534A (zh) 基于区块链的人事信息管理方法、装置及相关设备
CN111753009A (zh) 包括快速路径服务的分散式数据库中的信息管理
CN114065296A (zh) 基于拦截器的权限控制方法、装置、计算机设备及介质
CN111340483A (zh) 一种基于区块链的数据管理方法及相关设备
WO2022100155A1 (zh) 接口授权监控方法、装置、计算机设备和存储介质
CN115238247A (zh) 基于零信任数据访问控制系统的数据处理方法
CN114138781A (zh) 保单数据更新方法、装置、计算机设备及可读存储介质
CN110032834B (zh) 系统授权控制方法、终端设备及存储介质
CN113282591A (zh) 权限过滤方法、装置、计算机设备及存储介质
CN109299613B (zh) 数据库分区权限的设置方法和终端设备
CN112925589A (zh) 扩展接口的调用方法及装置
CN112291241A (zh) 防火墙开墙方法、防火墙开墙装置及终端设备
CN112181921A (zh) 数据处理方法及装置
CN115065695B (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