CN115905206A - 多租户数据隔离方法、装置、设备及存储介质 - Google Patents

多租户数据隔离方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN115905206A
CN115905206A CN202110945916.4A CN202110945916A CN115905206A CN 115905206 A CN115905206 A CN 115905206A CN 202110945916 A CN202110945916 A CN 202110945916A CN 115905206 A CN115905206 A CN 115905206A
Authority
CN
China
Prior art keywords
tenant
storage space
target
data
information
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
CN202110945916.4A
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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology 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 Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN202110945916.4A priority Critical patent/CN115905206A/zh
Publication of CN115905206A publication Critical patent/CN115905206A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及信息处理技术领域,公开了一种多租户数据隔离方法、装置、设备及存储介质,所述方法包括:获取多个租户对应的租户信息;根据所述租户信息为各租户在数据库中划分出对应的存储空间;根据所述存储空间对各租户对应的数据分别进行存储,以实现多租户数据隔离。由于本方案通过将各租户对应的数据存储在单数据库中的不同存储空间来进行数据隔离,不需要使用多个数据库,可方便地对各租户的数据进行管理,不需要使用过多的数据库资源。

Description

多租户数据隔离方法、装置、设备及存储介质
技术领域
本发明涉及信息处理技术领域,尤其涉及一种多租户数据隔离方法、装置、设备及存储介质。
背景技术
IT云平台作为集团的IT部门核心管理系统,需要对接大量的子公司的业务,每个子公司作为一个租户,需要进行数据隔离,常规方案是从整个数据库的层面进行隔离,每个租户申请一个全新的数据库实例或者数据库database,租户之间数据完全隔离,每个租户对应一个数据库,需要较多的数据库资源。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提出一种多租户数据隔离方法、装置、设备及存储介质,旨在解决现有技术中租户之间数据完全隔离,每个租户对应一个数据库,需要较多的数据库资源的技术问题。
为实现上述目的,本发明提供一种多租户数据隔离方法,所述多租户数据隔离方法包括以下步骤:
获取多个租户对应的租户信息;
根据所述租户信息为各租户在数据库中划分出对应的存储空间;
根据所述存储空间对各租户对应的数据分别进行存储,以实现多租户数据隔离。
可选地,所述根据所述租户信息为各租户在数据库中划分出对应的存储空间,包括:
根据所述租户信息确定各租户对应的租户权限;
根据所述租户权限确定各租户对应的数据存储需求;
根据所述数据存储需求为各租户在数据库中划分出对应的存储空间。
可选地,所述根据所述存储空间对各租户对应的数据分别进行存储之后,还包括:
在接收到访问指令时,根据所述访问指令确定目标租户;
根据所述目标租户确定对应的目标存储空间;
根据所述访问指令读取所述目标存储空间中存储的数据。
可选地,所述根据所述存储空间对各租户对应的数据分别进行存储之后,还包括:
根据所述租户信息生成各租户对应的租户标识,以及各存储空间对应的存储空间标识;
根据所述生成租户标识和所述存储空间标识生成租户列表。
可选地,所述根据所述目标租户确定对应的目标存储空间,包括:
获取所述目标租户对应的目标租户类型;
在所述目标租户类型为单租户时,查找所述目标租户对应的目标存储空间。
可选地,所述查找所述目标租户对应的目标存储空间,包括:
获取所述目标租户对应的目标租户标识;
根据所述目标租户标识和所述租户列表查找所述目标租户对应的目标存储空间。
可选地,所述获取所述目标租户对应的目标租户类型之后,还包括:
在所述目标租户类型为组合租户时,根据所述目标租户确定多个目标子租户;
查找各目标子租户对应的目标子存储空间;
根据所述目标子存储空间确定目标存储空间。
可选地,所述在接收到访问指令时,根据所述访问指令确定目标租户,包括:
在接收到访问指令时,根据所述访问指令确定登录信息;
根据所述登录信息确定当前用户信息;
根据所述当前用户信息确定目标租户。
可选地,所述根据所述登录信息确定当前用户信息,包括:
根据所述登录信息确定用户账号和登录密码;
根据所述用户账号和所述登录密码进行身份鉴权;
在身份鉴权成功时,根据所述用户账号确定当前用户信息。
可选地,所述根据所述用户账号和所述登录密码进行身份鉴权,包括:
查找所述用户账号对应的目标密码;
将所述登录密码与所述目标密码进行比较,得到比较结果;
根据所述比较结果进行身份鉴权。
可选地,所述根据所述当前用户信息确定目标租户,包括:
根据所述当前用户信息确定当前用户对应的访问权限;
根据所述访问权限确定所述当前用户能够访问的目标租户。
可选地,所述根据所述存储空间对各租户对应的数据分别进行存储之后,还包括:
在接收到报表指令时,根据所述报表指令确定对应的待选租户;
获取所述待选租户的对应的待选租户类型;
在所述待选租户类型为单租户时,查找所述待选租户对应的待选存储空间;
根据所述待选存储空间中存储的数据生成管理报表。
可选地,所述获取所述待选租户的对应的待选租户类型之后,还包括:
在所述待选租户类型为组合租户时,根据所述待选租户确定多个待选子租户;
查找各待选子租户对应的待选子存储空间;
根据各待选子存储空间中存储的数据生成管理报表。
可选地,所述根据所述存储空间对各租户对应的数据分别进行存储之后,还包括:
在接收到租户增加指令时,根据所述租户增加指令确定待增加租户以及所述待增加租户对应的待增加租户信息;
根据所述待增加租户信息在数据库中划分出所述待增加租户对应的存储空间。
可选地,所述根据所述存储空间对各租户对应的数据分别进行存储之后,还包括:
在接收到租户删除指令时,根据所述租户删除指令确定待删除租户以及所述待删除租户对应的待删除租户信息;
根据所述待删除租户信息在数据库中对所述待删除租户对应的存储空间进行还原处理。
可选地,所述根据所述存储空间对各租户对应的数据分别进行存储之后,还包括:
在接收到租户更改指令时,根据所述租户更改指令确定待更改租户以及所述待更改租户对应的待更改租户信息;
根据所述待更改租户信息在数据库中对所述待更改租户对应的存储空间进行更改处理。
此外,为实现上述目的,本发明还提出一种多租户数据隔离装置,所述多租户数据隔离装置包括:
信息获取模块,用于获取多个租户对应的租户信息;
空间划分模块,用于根据所述租户信息为各租户在数据库中划分出对应的存储空间;
数据隔离模块,用于根据所述存储空间对各租户对应的数据分别进行存储,以实现多租户数据隔离。
可选地,所述空间划分模块,还用于根据所述租户信息确定各租户对应的租户权限;根据所述租户权限确定各租户对应的数据存储需求;根据所述数据存储需求为各租户在数据库中划分出对应的存储空间。
此外,为实现上述目的,本发明还提出一种多租户数据隔离设备,所述多租户数据隔离设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的多租户数据隔离程序,所述多租户数据隔离程序被处理器执行时实现如上所述的多租户数据隔离方法。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有多租户数据隔离程序,所述多租户数据隔离程序被处理器执行时实现如上所述的多租户数据隔离方法。
本发明提出的多租户数据隔离方法,通过获取多个租户对应的租户信息;根据所述租户信息为各租户在数据库中划分出对应的存储空间;根据所述存储空间对各租户对应的数据分别进行存储,以实现多租户数据隔离。由于本方案通过将各租户对应的数据存储在单数据库中的不同存储空间来进行数据隔离,不需要使用多个数据库,可方便地对各租户的数据进行管理,不需要使用过多的数据库资源。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的多租户数据隔离设备结构示意图;
图2为本发明多租户数据隔离方法第一实施例的流程示意图;
图3为本发明多租户数据隔离方法一实施例的常规的多租户数据隔离示意图;
图4为本发明多租户数据隔离方法一实施例的改进后的多租户数据隔离示意图;
图5为本发明多租户数据隔离方法第二实施例的流程示意图;
图6为本发明多租户数据隔离方法第三实施例的流程示意图;
图7为本发明多租户数据隔离装置第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的多租户数据隔离设备结构示意图。
如图1所示,该多租户数据隔离设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如按键,可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如Wi-Fi接口)。存储器1005可以是高速随机存取存储器(Random Access Memory,RAM),也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对多租户数据隔离设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及多租户数据隔离程序。
在图1所示的多租户数据隔离设备中,网络接口1004主要用于连接外网,与其他网络设备进行数据通信;用户接口1003主要用于连接用户设备,与所述用户设备进行数据通信;本发明设备通过处理器1001调用存储器1005中存储的多租户数据隔离程序,并执行本发明实施例提供的多租户数据隔离方法。
基于上述硬件结构,提出本发明多租户数据隔离方法实施例。
参照图2,图2为本发明多租户数据隔离方法第一实施例的流程示意图。
在第一实施例中,所述多租户数据隔离方法包括以下步骤:
步骤S10,获取多个租户对应的租户信息。
需要说明的是,本实施例的执行主体可为多租户数据隔离设备,例如具有信息处理功能的计算机设备,还可为其他可实现相同或相似功能的设备,本实施例对此不作限制。
需要说明的是,IT云平台作为一个集团的IT部门核心管理系统,需要对接大量的子公司的业务,每个子公司作为一个租户,需要进行数据隔离。常规方案是从整个数据库的层面进行数据隔离,每个租户申请一个全新的数据库实例或者数据库database,即每个租户对应一个单独的数据库。例如,IT云平台如果对接三个子公司的业务,即对接三个租户,这三个租户分别为:租户1、租户2以及租户3。这三个租户分别各自对应一个数据库,即需要三个数据库,需要耗费较多的数据库资源,而且,由于这些数据库完全隔离,所以也无法统一对这些租户进行数据管理,也不支持租户组合。其中,在具体使用场景中,IT云平台还可对接更多数量的租户,本实施例对租户的数量不作限制。
在具体实现中,可如图3所示,图3为常规的多租户数据隔离示意图,租户1对应数据库1,租户1对应的数据信息都存储在数据库1中。租户2对应数据库2,租户2对应的数据信息都存储在数据库2中。租户3对应数据库3,租户3对应的数据信息都存储在数据库3中。由于数据库1、数据库2、数据库3属于不同的数据库,所以这三个数据库之间的数据完全彼此独立,即租户1、租户2以及租户3之间的数据信息完全彼此独立,无法对各租户进行统一的数据管理以及租户组合。
应当理解的是,在本方案中,为了达到对各租户进行统一的数据管理以及租户组合的效果,提出基于Django&Django Rest Framework的单数据库租户方案。本方案采用单数据库的隔离方案,依托Django Rest Framework对所有的HTTP接口启用租户的限制,通过在单数据库中为各租户划分出对应的存储空间的方式来进行数据隔离。
在具体实现中,可如图4所示,图4为改进后的多租户数据隔离示意图,本方案中的数据库为单数据库,在该数据库中划分出与租户1对应的存储空间1,与租户2对应的存储空间2,以及与租户3对应的存储空间3。将租户1对应的数据信息存储在存储空间1中,将租户2对应的数据信息存储在存储空间2中,将租户3对应的数据信息存储在存储空间3中。由于存储空间1、存储空间2以及存储空间3属于不同的存储空间,所以可以起到对各租户的数据进行隔离的效果,而又由于它们属于同一个数据库,所以也可以很方便地对该数据库的存储空间内存储的数据进行统一调用以及组合,实现对各租户进行统一的数据管理以及租户组合的效果。并且,由于即使新添租户,也只需要在该数据库中为新添加的租户划分出对应的存储空间即可,不需要增加额外的数据库,可以减少数据库资源的使用。
需要说明的是,在IT云平台对接多个租户的情况下,可获取这些多个租户对应的租户名称、租户包含的用户人数、租户数据使用情况以及租户权限等租户信息,除上述这些信息外,还可包含更多的租户信息,本实施例对此不作限制。
步骤S20,根据所述租户信息为各租户在数据库中划分出对应的存储空间。
应当理解的是,在具体的使用场景中,可制定多种功能模块,需要具有对应的权限才能使用这些功能模块,而对于不同的租户,这些租户可能根据实际需求具有不同的功能模块的访问权限,而不同的功能模块所对应的数据存储需求又存在区别。因此,可根据各租户对应的租户信息确定各租户对应的租户权限,然后根据各租户对应的租户权限确定各租户对应的数据存储需求,进而根据各租户对应的数据存储需求确定各租户对应的数据存储量,根据各租户对应的数据存储量为各租户在数据库中划分出对应的存储空间。
步骤S30,根据所述存储空间对各租户对应的数据分别进行存储,以实现多租户数据隔离。
应当理解的是,可根据各租户对应的存储空间对各租户对应的数据分别进行存储,可以实现对多租户的数据进行隔离的效果,而且,由于这些租户的数据存储在同一个数据库中,可方便地对这些租户对应的数据进行统一管理以及租户组合。例如,可将租户1和租户2进行组合,得到租户A,通过租户A可以实现对租户1和租户2的数据管理,并统一出具管理报表等。除了上述记载的租户组合方式外,还可通过其他方式对租户进行灵活组合,本实施例对此不作限制。
可以理解的是,本方案的单数据库隔离方式,针对集团公司的多个事业部实现数据统一管理,但各事业部IT运维相对独立的策略要求下,设计了租户资源使用和权限的隔离、底层数据的统一存储架构,既可以满足集团的各事业部IT管理独立性要求,又可以满足集团数据统一存储合规的要求。由于各租户对应不同的存储空间,所以可以起到对各租户的数据进行隔离的效果,而又由于这些存储空间属于同一个数据库,所以也可以很方便地对该数据库的存储空间内存储的数据进行统一调用以及组合,实现对各租户进行统一的数据管理以及租户组合的效果。
本实施例中,通过获取多个租户对应的租户信息;根据所述租户信息为各租户在数据库中划分出对应的存储空间;根据所述存储空间对各租户对应的数据分别进行存储,以实现多租户数据隔离。由于本方案通过将各租户对应的数据存储在单数据库中的不同存储空间来进行数据隔离,不需要使用多个数据库,可方便地对各租户的数据进行管理,不需要使用过多的数据库资源。
在一实施例中,如图5所示,基于第一实施例提出本发明多租户数据隔离方法第二实施例,所述步骤S30之后,还包括:
步骤S401,在接收到访问指令时,根据所述访问指令确定目标租户。
应当理解的是,用户在需要使用目标租户中的数据时,可在终端输入访问指令,在接收到用户输入的访问指令时,可根据访问指令确定当前用户的登录信息,进而根据登录信息确定当前用户信息,根据当前用户信息确定目标租户。
需要说明的是,本实施例中的登录信息为当前用户在登录目标租户时输入的登录信息,为了便于进行身份鉴权,也为了提高身份鉴权的精度,在接收到当前用户输入的登录信息时,可根据登录信息确定用户账号和登录密码。其中,用户账号和登录密码为当前用户输入的信息。
可以理解的是,数据库中存储有具有登录权限的账号以及这些账号对应的密码,因此,在确定当前用户输入的用户账号之后,可通过公共租户对应的数据库查找用户账号对应的目标密码,将登录密码与目标密码进行比较,以判断登录密码与目标密码是否一致,进而根据比较结果进行身份鉴权。
在具体实现中,例如,假如当前用户输入的用户账号为“1111”,输入的登录密码为“0000”,那么通过数据库查找用户账号对应的目标密码,然后将登录密码与查找到的目标密码进行比较。如果查找到的目标密码为“0000”,则比较结果为登录密码与目标密码一致,可判定身份鉴权成功。如果查找到的目标密码为“0001”,则比较结果为登录密码与目标密码不一致,可判定身份鉴权失败。在身份鉴权失败的情况下,可提示用户重新输入登录信息。
可以理解的是,在身份鉴权成功的情况下,可根据用户账号查找当前用户对应的当前用户信息,然后,根据当前用户信息确定当前用户对应的访问权限,根据访问权限确定当前用户具有访问权限的租户,将当前用户具有访问权限的租户作为目标租户。
在具体实现中,例如,假设根据当前用户信息确定当前用户对应的访问权限后,根据访问权限可确定当前用户具有访问租户2的权限,因此,可将租户2作为用户将要访问的目标租户。
步骤S402,根据所述目标租户确定对应的目标存储空间。
应当理解的是,由于在数据库中为每个租户都划分出了对应的存储空间,租户与存储空间之间存在对应关系,因此,在确定目标租户之后,可根据租户与存储空间之间的对应关系,确定目标租户对应的目标存储空间。
在具体实现中,例如,租户1与存储空间1存在对应关系,租户2与存储空间2存在对应关系,租户3与存储空间3存在对应关系。如果确定目标租户为租户2,那么便可确定租户2对应的存储空间2为目标存储空间。
进一步地,为了提高查找的效率,提升数据处理能力,所述根据所述存储空间对各租户对应的数据分别进行存储之后,还包括:
根据所述租户信息生成各租户对应的租户标识,以及各存储空间对应的存储空间标识;根据所述生成租户标识和所述存储空间标识生成租户列表。
可以理解的是,可扩展Django Model,增加租户ID字段,可根据各租户对应的租户信息生成各租户对应的租户标识,以及各存储空间对应的存储空间标识。其中,本实施例中的标识可为ID,还可为其他类型的标识,本实施例对此不作限制,在本实施例中,以ID为例进行说明。
可以理解的是,在生成租户标识和存储空间标识之后,可根据租户标识和存储空间标识生成租户列表,通过租户列表来记录租户标识与存储空间标识之间的对应关系。
应当理解的是,在本实施例中,为了便于对多租户的数据进行管理,支持租户组合功能,因此,本实施例中的租户类型可分为单租户和组合租户,其中,单租户为租户1、租户2以及租户3等单独的租户,组合租户为由多租户组合得到的租户,例如,由租户1和租户2组合得到租户A。
可以理解的是,在确定目标租户之后,可获取目标租户对应的目标租户类型。如果目标租户类型为单租户,则可获取目标租户对应的目标租户标识,然后根据租户列表查找目标租户标识对应的目标存储空间标识,进而根据目标存储空间标识确定目标租户对应的目标存储空间。
可以理解的是,如果目标租户类型为组合租户,则说明目标租户包含多个子租户,因此,可根据目标租户确定多个目标子租户,然后查找各目标子租户对应的目标子存储空间,根据目标子存储空间确定目标存储空间。
在具体实现中,例如,假如目标租户为组合租户A,则可查找租户A包含的租户1和租户2,可分别查找租户1对应的存储空间1以及租户2对应的存储空间2,将存储空间1和存储空间2作为目标子存储空间,进而根据存储空间1和存储空间2确定目标存储空间。
步骤S403,根据所述访问指令读取所述目标存储空间中存储的数据。
应当理解的是,在确定目标存储空间之后,便可根据访问指令读取目标存储空间中存储的数据,避免目标租户中的用户访问其他租户对应的数据,达到多租户数据隔离的效果。
在本实施例中,在接收到访问指令时,根据所述访问指令确定目标租户;根据所述目标租户确定对应的目标存储空间;根据所述访问指令读取所述目标存储空间中存储的数据,从而可避免目标租户中的用户访问其他租户对应的数据,达到多租户数据隔离的效果
在一实施例中,如图6所示,基于第一实施例或第二实施例提出本发明多租户数据隔离方法第三实施例,在本实施例中,基于第一实施例进行说明,所述步骤S30之后,还包括:
步骤S501,在接收到报表指令时,根据所述报表指令确定对应的待选租户。
应当理解的是,如果需要出具管理报表,可输入报表指令。设备在接收到报表指令时,可根据报表指令确定需要对应的待选租户,其中,待选租户可为单租户,也可为组合租户,本实施例对此不作限制。
步骤S502,获取所述待选租户的对应的待选租户类型。
应当理解的是,在确定待选租户之后,可获取待选租户对应的待选租户类型,然后判断待选租户类型为单租户还是组合租户,针对单租户和组合租户执行不同的控制逻辑。
步骤S503,在所述待选租户类型为单租户时,查找所述待选租户对应的待选存储空间。
可以理解的是,在待选租户类型为单租户时,可直接查找待选租户对应的待选存储空间。
步骤S504,根据所述待选存储空间中存储的数据生成管理报表。
可以理解的是,在确定待选租户对应的待选存储空间之后,可获取待选存储空间存储的数据,并根据待选存储空间中存储的数据生成管理报表。
在具体实现中,例如,在待选租户类型为单租户,且待选租户为租户2时,可将租户2对应的存储空间2作为待选存储空间,然后根据存储空间2中存储的数据生成管理报表。
可以理解的是,待选租户类型为组合租户时,可根据待选租户确定多个待选子租户,查找各待选子租户对应的待选子存储空间,然后根据各待选子存储空间中存储的数据生成管理报表。
在具体实现中,例如,在待选租户类型为组合租户,且待选租户为租户A时,可查找租户A包含租户1和租户2,可分别查找租户1对应的存储空间1以及租户2对应的存储空间2,将存储空间1和存储空间2作为待选子存储空间,进而根据存储空间1和存储空间2中存储的数据生成管理报表。
进一步地,除了查询功能之外,本方案还可依托DRF对所有类型接口进行租户的增、删、改等功能的相关处理。
可以理解的是,在接收到租户增加指令时,可根据租户增加指令确定待增加租户以及待增加租户对应的待增加租户信息,然后根据待增加租户信息在数据库中划分出待增加租户对应的存储空间,从而新增租户无额外运维成本,不需要申请数据库等资源。
可以理解的是,在接收到租户删除指令时,可根据租户删除指令确定待删除租户以及待删除租户对应的待删除租户信息,然后根据待删除租户信息在数据库中对待删除租户对应的存储空间进行还原处理,将还原后的存储空间用于后续的空间划分,可提高数据库存储空间的利用率。
可以理解的是,在接收到租户更改指令时,可根据租户更改指令确定待更改租户以及待更改租户对应的待更改租户信息,啊然后根据待更改租户信息在数据库中对待更改租户对应的存储空间进行更改处理,从而可方便地对租户的存储空间进行调整,较为灵活。
在本实施例中,在接收到报表指令时,根据所述报表指令确定对应的待选租户;获取所述待选租户的对应的待选租户类型;在所述待选租户类型为单租户时,查找所述待选租户对应的待选存储空间;根据所述待选存储空间中存储的数据生成管理报表;在所述待选租户类型为组合租户时,根据所述待选租户确定多个待选子租户;查找各待选子租户对应的待选子存储空间;根据各待选子存储空间中存储的数据生成管理报表,从而可通过租户组合的方式,对多租户进行数据管理,方便统一出具管理报表。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有多租户数据隔离程序,所述多租户数据隔离程序被处理器执行时实现如上文所述的多租户数据隔离方法的步骤。
由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
此外,参照图7,本发明实施例还提出一种多租户数据隔离装置,所述多租户数据隔离装置包括:
信息获取模块10,用于获取多个租户对应的租户信息。
需要说明的是,IT云平台作为一个集团的IT部门核心管理系统,需要对接大量的子公司的业务,每个子公司作为一个租户,需要进行数据隔离。常规方案是从整个数据库的层面进行数据隔离,每个租户申请一个全新的数据库实例或者数据库database,即每个租户对应一个单独的数据库。例如,IT云平台如果对接三个子公司的业务,即对接三个租户,这三个租户分别为:租户1、租户2以及租户3。这三个租户分别各自对应一个数据库,即需要三个数据库,需要耗费较多的数据库资源,而且,由于这些数据库完全隔离,所以也无法统一对这些租户进行数据管理,也不支持租户组合。其中,在具体使用场景中,IT云平台还可对接更多数量的租户,本实施例对租户的数量不作限制。
在具体实现中,可如图3所示,图3为常规的多租户数据隔离示意图,租户1对应数据库1,租户1对应的数据信息都存储在数据库1中。租户2对应数据库2,租户2对应的数据信息都存储在数据库2中。租户3对应数据库3,租户3对应的数据信息都存储在数据库3中。由于数据库1、数据库2、数据库3属于不同的数据库,所以这三个数据库之间的数据完全彼此独立,即租户1、租户2以及租户3之间的数据信息完全彼此独立,无法对各租户进行统一的数据管理以及租户组合。
应当理解的是,在本方案中,为了达到对各租户进行统一的数据管理以及租户组合的效果,提出基于Django&Django Rest Framework的单数据库租户方案。本方案采用单数据库的隔离方案,依托Django Rest Framework对所有的HTTP接口启用租户的限制,通过在单数据库中为各租户划分出对应的存储空间的方式来进行数据隔离。
在具体实现中,可如图4所示,图4为改进后的多租户数据隔离示意图,本方案中的数据库为单数据库,在该数据库中划分出与租户1对应的存储空间1,与租户2对应的存储空间2,以及与租户3对应的存储空间3。将租户1对应的数据信息存储在存储空间1中,将租户2对应的数据信息存储在存储空间2中,将租户3对应的数据信息存储在存储空间3中。由于存储空间1、存储空间2以及存储空间3属于不同的存储空间,所以可以起到对各租户的数据进行隔离的效果,而又由于它们属于同一个数据库,所以也可以很方便地对该数据库的存储空间内存储的数据进行统一调用以及组合,实现对各租户进行统一的数据管理以及租户组合的效果。并且,由于即使新添租户,也只需要在该数据库中为新添加的租户划分出对应的存储空间即可,不需要增加额外的数据库,可以减少数据库资源的使用。
需要说明的是,在IT云平台对接多个租户的情况下,可获取这些多个租户对应的租户名称、租户包含的用户人数、租户数据使用情况以及租户权限等租户信息,除上述这些信息外,还可包含更多的租户信息,本实施例对此不作限制。
空间划分模块20,用于根据所述租户信息为各租户在数据库中划分出对应的存储空间。
应当理解的是,在具体的使用场景中,可制定多种功能模块,需要具有对应的权限才能使用这些功能模块,而对于不同的租户,这些租户可能根据实际需求具有不同的功能模块的访问权限,而不同的功能模块所对应的数据存储需求又存在区别。因此,可根据各租户对应的租户信息确定各租户对应的租户权限,然后根据各租户对应的租户权限确定各租户对应的数据存储需求,进而根据各租户对应的数据存储需求确定各租户对应的数据存储量,根据各租户对应的数据存储量为各租户在数据库中划分出对应的存储空间。
数据隔离模块30,用于根据所述存储空间对各租户对应的数据分别进行存储,以实现多租户数据隔离。
应当理解的是,可根据各租户对应的存储空间对各租户对应的数据分别进行存储,可以实现对多租户的数据进行隔离的效果,而且,由于这些租户的数据存储在同一个数据库中,可方便地对这些租户对应的数据进行统一管理以及租户组合。例如,可将租户1和租户2进行组合,得到租户A,通过租户A可以实现对租户1和租户2的数据管理,并统一出具管理报表等。除了上述记载的租户组合方式外,还可通过其他方式对租户进行灵活组合,本实施例对此不作限制。
可以理解的是,本方案的单数据库隔离方式,针对集团公司的多个事业部实现数据统一管理,但各事业部IT运维相对独立的策略要求下,设计了租户资源使用和权限的隔离、底层数据的统一存储架构,既可以满足集团的各事业部IT管理独立性要求,又可以满足集团数据统一存储合规的要求。由于各租户对应不同的存储空间,所以可以起到对各租户的数据进行隔离的效果,而又由于这些存储空间属于同一个数据库,所以也可以很方便地对该数据库的存储空间内存储的数据进行统一调用以及组合,实现对各租户进行统一的数据管理以及租户组合的效果。
本实施例中,通过获取多个租户对应的租户信息;根据所述租户信息为各租户在数据库中划分出对应的存储空间;根据所述存储空间对各租户对应的数据分别进行存储,以实现多租户数据隔离。由于本方案通过将各租户对应的数据存储在单数据库中的不同存储空间来进行数据隔离,不需要使用多个数据库,可方便地对各租户的数据进行管理,不需要使用过多的数据库资源。
在一实施例中,所述多租户数据隔离装置还包括数据访问模块,用于在接收到访问指令时,根据所述访问指令确定目标租户;根据所述目标租户确定对应的目标存储空间;根据所述访问指令读取所述目标存储空间中存储的数据。
在一实施例中,所述多租户数据隔离装置还包括标识模块,用于根据所述租户信息生成各租户对应的租户标识,以及各存储空间对应的存储空间标识;根据所述生成租户标识和所述存储空间标识生成租户列表。
在一实施例中,所述数据访问模块,还用于获取所述目标租户对应的目标租户类型;在所述目标租户类型为单租户时,查找所述目标租户对应的目标存储空间。
在一实施例中,所述数据访问模块,还用于获取所述目标租户对应的目标租户标识;根据所述目标租户标识和所述租户列表查找所述目标租户对应的目标存储空间。
在一实施例中,所述数据访问模块,还用于在所述目标租户类型为组合租户时,根据所述目标租户确定多个目标子租户;查找各目标子租户对应的目标子存储空间;根据所述目标子存储空间确定目标存储空间。
在一实施例中,所述数据访问模块,还用于在接收到访问指令时,根据所述访问指令确定登录信息;根据所述登录信息确定当前用户信息;根据所述当前用户信息确定目标租户。
在一实施例中,所述数据访问模块,还用于根据所述登录信息确定用户账号和登录密码;根据所述用户账号和所述登录密码进行身份鉴权;在身份鉴权成功时,根据所述用户账号确定当前用户信息。
在一实施例中,所述数据访问模块,还用于查找所述用户账号对应的目标密码;将所述登录密码与所述目标密码进行比较,得到比较结果;根据所述比较结果进行身份鉴权。
在一实施例中,所述数据访问模块,还用于根据所述当前用户信息确定当前用户对应的访问权限;根据所述访问权限确定所述当前用户能够访问的目标租户。
在一实施例中,所述多租户数据隔离装置还包括管理报表模块,用于在接收到报表指令时,根据所述报表指令确定对应的待选租户;获取所述待选租户的对应的待选租户类型;在所述待选租户类型为单租户时,查找所述待选租户对应的待选存储空间;根据所述待选存储空间中存储的数据生成管理报表。
在一实施例中,所述管理报表模块,还用于在所述待选租户类型为组合租户时,根据所述待选租户确定多个待选子租户;查找各待选子租户对应的待选子存储空间;根据各待选子存储空间中存储的数据生成管理报表。
在一实施例中,所述多租户数据隔离装置还包括租户增加模块,用于在接收到租户增加指令时,根据所述租户增加指令确定待增加租户以及所述待增加租户对应的待增加租户信息;根据所述待增加租户信息在数据库中划分出所述待增加租户对应的存储空间。
在一实施例中,所述多租户数据隔离装置还包括租户删除模块,用于在接收到租户删除指令时,根据所述租户删除指令确定待删除租户以及所述待删除租户对应的待删除租户信息;根据所述待删除租户信息在数据库中对所述待删除租户对应的存储空间进行还原处理。
在一实施例中,所述多租户数据隔离装置还包括租户更改模块,用于在接收到租户更改指令时,根据所述租户更改指令确定待更改租户以及所述待更改租户对应的待更改租户信息;根据所述待更改租户信息在数据库中对所述待更改租户对应的存储空间进行更改处理。
在本发明所述多租户数据隔离装置的其他实施例或具体实现方法可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该估算机软件产品存储在如上所述的一个估算机可读存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台智能设备(可以是手机,估算机,多租户数据隔离设备,或者网络多租户数据隔离设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
本发明公开了A1、一种多租户数据隔离方法,其特征在于,所述多租户数据隔离方法包括以下步骤:
获取多个租户对应的租户信息;
根据所述租户信息为各租户在数据库中划分出对应的存储空间;
根据所述存储空间对各租户对应的数据分别进行存储,以实现多租户数据隔离。
A2、如A1所述的多租户数据隔离方法,其特征在于,所述根据所述租户信息为各租户在数据库中划分出对应的存储空间,包括:
根据所述租户信息确定各租户对应的租户权限;
根据所述租户权限确定各租户对应的数据存储需求;
根据所述数据存储需求为各租户在数据库中划分出对应的存储空间。
A3、如A1所述的多租户数据隔离方法,其特征在于,所述根据所述存储空间对各租户对应的数据分别进行存储之后,还包括:
在接收到访问指令时,根据所述访问指令确定目标租户;
根据所述目标租户确定对应的目标存储空间;
根据所述访问指令读取所述目标存储空间中存储的数据。
A4、如A3所述的多租户数据隔离方法,其特征在于,所述根据所述存储空间对各租户对应的数据分别进行存储之后,还包括:
根据所述租户信息生成各租户对应的租户标识,以及各存储空间对应的存储空间标识;
根据所述生成租户标识和所述存储空间标识生成租户列表。
A5、如A4所述的多租户数据隔离方法,其特征在于,所述根据所述目标租户确定对应的目标存储空间,包括:
获取所述目标租户对应的目标租户类型;
在所述目标租户类型为单租户时,查找所述目标租户对应的目标存储空间。
A6、如A5所述的多租户数据隔离方法,其特征在于,所述查找所述目标租户对应的目标存储空间,包括:
获取所述目标租户对应的目标租户标识;
根据所述目标租户标识和所述租户列表查找所述目标租户对应的目标存储空间。
A7、如A5所述的多租户数据隔离方法,其特征在于,所述获取所述目标租户对应的目标租户类型之后,还包括:
在所述目标租户类型为组合租户时,根据所述目标租户确定多个目标子租户;
查找各目标子租户对应的目标子存储空间;
根据所述目标子存储空间确定目标存储空间。
A8、如A3所述的多租户数据隔离方法,其特征在于,所述在接收到访问指令时,根据所述访问指令确定目标租户,包括:
在接收到访问指令时,根据所述访问指令确定登录信息;
根据所述登录信息确定当前用户信息;
根据所述当前用户信息确定目标租户。
A9、如A8所述的多租户数据隔离方法,其特征在于,所述根据所述登录信息确定当前用户信息,包括:
根据所述登录信息确定用户账号和登录密码;
根据所述用户账号和所述登录密码进行身份鉴权;
在身份鉴权成功时,根据所述用户账号确定当前用户信息。
A10、如A9所述的多租户数据隔离方法,其特征在于,所述根据所述用户账号和所述登录密码进行身份鉴权,包括:
查找所述用户账号对应的目标密码;
将所述登录密码与所述目标密码进行比较,得到比较结果;
根据所述比较结果进行身份鉴权。
A11、如A8所述的多租户数据隔离方法,其特征在于,所述根据所述当前用户信息确定目标租户,包括:
根据所述当前用户信息确定当前用户对应的访问权限;
根据所述访问权限确定所述当前用户能够访问的目标租户。
A12、如A1至A11中任一项所述的多租户数据隔离方法,其特征在于,所述根据所述存储空间对各租户对应的数据分别进行存储之后,还包括:
在接收到报表指令时,根据所述报表指令确定对应的待选租户;
获取所述待选租户的对应的待选租户类型;
在所述待选租户类型为单租户时,查找所述待选租户对应的待选存储空间;
根据所述待选存储空间中存储的数据生成管理报表。
A13、如A12所述的多租户数据隔离方法,其特征在于,所述获取所述待选租户的对应的待选租户类型之后,还包括:
在所述待选租户类型为组合租户时,根据所述待选租户确定多个待选子租户;
查找各待选子租户对应的待选子存储空间;
根据各待选子存储空间中存储的数据生成管理报表。
A14、如A1至A11中任一项所述的多租户数据隔离方法,其特征在于,所述根据所述存储空间对各租户对应的数据分别进行存储之后,还包括:
在接收到租户增加指令时,根据所述租户增加指令确定待增加租户以及所述待增加租户对应的待增加租户信息;
根据所述待增加租户信息在数据库中划分出所述待增加租户对应的存储空间。
A15、如A1至A11中任一项所述的多租户数据隔离方法,其特征在于,所述根据所述存储空间对各租户对应的数据分别进行存储之后,还包括:
在接收到租户删除指令时,根据所述租户删除指令确定待删除租户以及所述待删除租户对应的待删除租户信息;
根据所述待删除租户信息在数据库中对所述待删除租户对应的存储空间进行还原处理。
A16、如A1至A11中任一项所述的多租户数据隔离方法,其特征在于,所述根据所述存储空间对各租户对应的数据分别进行存储之后,还包括:
在接收到租户更改指令时,根据所述租户更改指令确定待更改租户以及所述待更改租户对应的待更改租户信息;
根据所述待更改租户信息在数据库中对所述待更改租户对应的存储空间进行更改处理。
本发明还公开了B17、一种多租户数据隔离装置,其特征在于,所述多租户数据隔离装置包括:
信息获取模块,用于获取多个租户对应的租户信息;
空间划分模块,用于根据所述租户信息为各租户在数据库中划分出对应的存储空间;
数据隔离模块,用于根据所述存储空间对各租户对应的数据分别进行存储,以实现多租户数据隔离。
B18、如B17所述的多租户数据隔离装置,其特征在于,所述空间划分模块,还用于根据所述租户信息确定各租户对应的租户权限;根据所述租户权限确定各租户对应的数据存储需求;根据所述数据存储需求为各租户在数据库中划分出对应的存储空间。
本发明还公开了C19、一种多租户数据隔离设备,其特征在于,所述多租户数据隔离设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的多租户数据隔离程序,所述多租户数据隔离程序配置有实现如上所述的多租户数据隔离方法。
本发明还公开了D20、一种存储介质,其特征在于,所述存储介质上存储有多租户数据隔离程序,所述多租户数据隔离程序被处理器执行时实现如上所述的多租户数据隔离方法。

Claims (10)

1.一种多租户数据隔离方法,其特征在于,所述多租户数据隔离方法包括以下步骤:
获取多个租户对应的租户信息;
根据所述租户信息为各租户在数据库中划分出对应的存储空间;
根据所述存储空间对各租户对应的数据分别进行存储,以实现多租户数据隔离。
2.如权利要求1所述的多租户数据隔离方法,其特征在于,所述根据所述租户信息为各租户在数据库中划分出对应的存储空间,包括:
根据所述租户信息确定各租户对应的租户权限;
根据所述租户权限确定各租户对应的数据存储需求;
根据所述数据存储需求为各租户在数据库中划分出对应的存储空间。
3.如权利要求1所述的多租户数据隔离方法,其特征在于,所述根据所述存储空间对各租户对应的数据分别进行存储之后,还包括:
在接收到访问指令时,根据所述访问指令确定目标租户;
根据所述目标租户确定对应的目标存储空间;
根据所述访问指令读取所述目标存储空间中存储的数据。
4.如权利要求3所述的多租户数据隔离方法,其特征在于,所述根据所述存储空间对各租户对应的数据分别进行存储之后,还包括:
根据所述租户信息生成各租户对应的租户标识,以及各存储空间对应的存储空间标识;
根据所述生成租户标识和所述存储空间标识生成租户列表。
5.如权利要求4所述的多租户数据隔离方法,其特征在于,所述根据所述目标租户确定对应的目标存储空间,包括:
获取所述目标租户对应的目标租户类型;
在所述目标租户类型为单租户时,查找所述目标租户对应的目标存储空间。
6.如权利要求5所述的多租户数据隔离方法,其特征在于,所述查找所述目标租户对应的目标存储空间,包括:
获取所述目标租户对应的目标租户标识;
根据所述目标租户标识和所述租户列表查找所述目标租户对应的目标存储空间。
7.如权利要求5所述的多租户数据隔离方法,其特征在于,所述获取所述目标租户对应的目标租户类型之后,还包括:
在所述目标租户类型为组合租户时,根据所述目标租户确定多个目标子租户;
查找各目标子租户对应的目标子存储空间;
根据所述目标子存储空间确定目标存储空间。
8.一种多租户数据隔离装置,其特征在于,所述多租户数据隔离装置包括:
信息获取模块,用于获取多个租户对应的租户信息;
空间划分模块,用于根据所述租户信息为各租户在数据库中划分出对应的存储空间;
数据隔离模块,用于根据所述存储空间对各租户对应的数据分别进行存储,以实现多租户数据隔离。
9.一种多租户数据隔离设备,其特征在于,所述多租户数据隔离设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的多租户数据隔离程序,所述多租户数据隔离程序配置有实现如权利要求1至7中任一项所述的多租户数据隔离方法。
10.一种存储介质,其特征在于,所述存储介质上存储有多租户数据隔离程序,所述多租户数据隔离程序被处理器执行时实现如权利要求1至7中任一项所述的多租户数据隔离方法。
CN202110945916.4A 2021-08-17 2021-08-17 多租户数据隔离方法、装置、设备及存储介质 Pending CN115905206A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110945916.4A CN115905206A (zh) 2021-08-17 2021-08-17 多租户数据隔离方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110945916.4A CN115905206A (zh) 2021-08-17 2021-08-17 多租户数据隔离方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN115905206A true CN115905206A (zh) 2023-04-04

Family

ID=86490112

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110945916.4A Pending CN115905206A (zh) 2021-08-17 2021-08-17 多租户数据隔离方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115905206A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116955275A (zh) * 2023-07-06 2023-10-27 三峡高科信息技术有限责任公司 一种基于多租户的企业级文档中心实现方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116955275A (zh) * 2023-07-06 2023-10-27 三峡高科信息技术有限责任公司 一种基于多租户的企业级文档中心实现方法及系统
CN116955275B (zh) * 2023-07-06 2024-03-12 三峡高科信息技术有限责任公司 一种基于多租户的企业级文档中心实现方法及系统

Similar Documents

Publication Publication Date Title
US10609035B2 (en) Access guards for multi-tenant logging
US9069788B2 (en) Truncating data associated with objects in a multi-tenant database
US9703834B2 (en) Topological query in multi-tenancy environment
CN107147728B (zh) 一种对象存储系统多租户的管理方法
CN107645532B (zh) 混合云的用户管理方法和装置
US9355270B2 (en) Security configuration systems and methods for portal users in a multi-tenant database environment
CN111935110A (zh) 一种对租户访问容器实例的权限的控制方法和装置
CN110909373A (zh) 一种访问控制方法、设备、系统及存储介质
CN114077602B (zh) 数据迁移方法和装置、电子设备、存储介质
US11500663B1 (en) Predictive virtual machine launch-based capacity management
US20200233907A1 (en) Location-based file recommendations for managed devices
CN111026765A (zh) 严格平衡二叉树的动态处理方法、设备、存储介质及装置
CN113779625A (zh) 一种数据访问的方法、装置、电子设备及存储介质
CN115905206A (zh) 多租户数据隔离方法、装置、设备及存储介质
CN118260329A (zh) 处理业务数据表的方法、装置、设备和计算机可读介质
CN111324799B (zh) 搜索请求的处理方法及装置
CN112084021A (zh) 教育系统的界面配置方法、装置、设备及可读存储介质
US20200045085A1 (en) Authentication method for anonymous account and server
US11513905B2 (en) Controlling search access to assets in a data protection product
CN114692126A (zh) 大数据统一授权访问方法、装置、电子设备及介质
CN111695124A (zh) 权限控制方法和装置、存储介质和电子设备
CN115827589A (zh) 一种权限验证方法、装置、电子设备及存储介质
CN111638902A (zh) 一种云端的api统一管理方法及装置
CN116684282B (zh) 新增云端服务器初始化方法、装置和计算机设备
US11722457B2 (en) Secure multi-tenant cloud subscription sharing

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