CN112906054A - 多租户的数据库隔离方法、装置及电子设备 - Google Patents
多租户的数据库隔离方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112906054A CN112906054A CN202110273444.2A CN202110273444A CN112906054A CN 112906054 A CN112906054 A CN 112906054A CN 202110273444 A CN202110273444 A CN 202110273444A CN 112906054 A CN112906054 A CN 112906054A
- Authority
- CN
- China
- Prior art keywords
- database
- tenant
- management module
- target
- data source
- 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
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
- 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
- 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/25—Integrating or interfacing systems involving database management systems
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种多租户的数据库隔离方法、装置及电子设备,该方法包括:如果接受到用户的业务请求,根据预设的多租户管理模块确定该租户对应的目标租户;其中,该多租户管理模块运行在指定操作系统上,该指定操作系统与第一数据库通信连接;该多租户管理模块用于管理多个数据库之间的逻辑关系,每一个数据库与一个租户对应;根据该多租户管理模块确定该目标租户对应的第二数据库;将该指定操作系统从该第一数据库切换连接至该第二数据库。本发明实施例提供一种多租户的数据库隔离方法,通过将数据库隔离,并管理数据库之间的逻辑关系,以提供可以兼顾租户对数据隔离的安全需求以及对数据维护的便捷性的需求的多组户的数据库隔离方法。
Description
技术领域
本发明涉及多租户的应用技术领域,尤其是涉及一种多租户的数据库隔离方法、装置及电子设备。
背景技术
多租户技术(multi-tenancy technology,多重租赁技术)是一种软件架构技术,也是一种软件即服务(Software as a Service,SaaS),该技术实现了如何在多租户的环境下共用使用相同的系统或程序组件,并且仍可确保各租户间数据的隔离性。由于多租户技术可以让多个租户公用一个应用程序或者运算环境,对供应商来说多租户技术可以有效的降低环境建设的成本,具体包括硬件系统本身、操作系统与相应软件的授权等。
传统的多租户架构的隔离方案主要有两种,一种是基于关系数据库的结构的数据隔离方案,该方案存在隔离级别低、安全性较差等弊端;另一种是以元数据为驱动,运行时动态编译生成多租户架构的方案,该方案需要引入各种数据缓存技术,该技术方案存在数据存储不直观、数据维护困难等弊端。
整体而言,传统方式的多租户的数据库隔离方法,不能同时兼顾租户对数据隔离的安全需求以及对数据维护的便捷性的需求。
发明内容
有鉴于此,本发明的目的在于提供一种多租户的隔离方法、装置及电子设备,该方法可以同时兼顾租户对数据隔离的安全需求以及对数据维护的便捷性的需求。
第一方面,本发明实施例提供了一种多租户的数据库隔离方法,应用于多租户的应用技术领域,该方法包括:如果接受到用户的业务请求,根据预设的多租户管理模块确定该租户对应的目标租户;其中,该多租户管理模块运行在指定操作系统上,该指定操作系统与第一数据库通信连接;该多租户管理模块用于管理多个数据库之间的逻辑关系,每一个数据库与一个租户对应;根据该多租户管理模块确定该目标租户对应的第二数据库;其中,该第二数据库与该第一数据库的结构一致;将该指定操作系统从该第一数据库切换连接至该第二数据库。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,该多租户管理模块中预设有租户表和数据源表;该租户表用于存储租户的租户信息,该数据源表用于存储租户的数据源的信息,每一个数据源的信息对应一个数据库。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,根据预设的多租户管理模块确定该租户对应的目标租户的步骤,包括:从该多租户管理模块的租户表中读取该租户对应的目标租户;根据该多租户管理模块确定该目标租户对应的第二数据库的步骤,包括:从该多租户管理模块的数据源表中读取该目标租户对应的数据源的信息;通过读取的该数据源的信息确定该目标租户对应的第二数据库。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,该第二数据库预先通过下述方式创建:接收该目标租户的数据库创建请求;该数据库创建请求中携带有该目标租户的基本信息;将该目标租户的基本信息保存到该多租户管理模块的预设租户表中;根据该目标租户的基本信息创建数据源配置文件,并注册该目标租户的数据源;将注册的该数据源的信息保存到该多租户管理模块的预设数据源表中;根据预设的数据库建表语句配置,创建该目标租户的业务数据库;其中,该业务数据库中包括至少一个业务表;通过预设的初始化脚本对该业务数据库中的业务表进行初始化操作,得到创建好的第二数据库;其中,该初始化脚本基于该第一数据库得到。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,该初始化脚本通过下述方式得到:获取该第一数据库中业务表的元数据;解析该元数据得到对应的元数据信息;根据该元数据信息生成业务数据库的初始化脚本。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,获取该第一数据库中业务表的元数据的步骤,包括:通过预先安装的Metacat抽取该第一数据库中业务表的元数据。
结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,在通过预设的初始化脚本对该业务数据库中的业务表进行初始化操作,得到创建好的第二数据库的步骤之后,该方法还包括:将该第二数据库的配置信息保存到该多租户管理模块的数据库表中;其中,该配置信息包括:数据库文件的存储路径、备份策略、访问策略。
结合第一方面,本发明实施例提供了第一方面的第七种可能的实施方式,其中,在解析该元数据得到对应的元数据信息的步骤之后,该方法还包括:将该元数据信息保存至该多租户管理模块的预设元数据表中。
第二方面,本发明实施例提供了一种多租户的数据库隔离装置,该装置包括:目标租户确定模块,用于如果接受到用户的业务请求,根据预设的多租户管理模块确定该租户对应的目标租户;其中,该多租户管理模块运行在指定操作系统上,该指定操作系统与第一数据库通信连接;该多租户管理模块用于管理多个数据库之间的逻辑关系,每一个数据库与一个租户对应;第二数据库确定模块,用于根据该多租户管理模块确定该目标租户对应的第二数据库;其中,该第二数据库与该第一数据库的结构一致;数据库切换模块,用于将该指定操作系统从该第一数据库切换连接至该第二数据库。
第三方面,本发明实施例提供一种电子设备,该电子设备包括处理器和存储器,该存储器存储有能够被该处理器执行的计算机可执行指令,该处理器执行该计算机可执行指令以实现第一方面及第一方面七种可能的实施方式中任一项的该多租户的数据库隔离方法的步骤。
本发明实施例带来了以下有益效果:
本发明实施例提供的多租户的数据库隔离方法、装置及电子设备,该方法包括:如果接受到用户的业务请求,根据预设的多租户管理模块确定该租户对应的目标租户;其中,该多租户管理模块运行在指定操作系统上,该指定操作系统与第一数据库通信连接;该多租户管理模块用于管理多个数据库之间的逻辑关系,每一个数据库与一个租户对应;根据该多租户管理模块确定该目标租户对应的第二数据库;其中,该第二数据库与该第一数据库的结构一致;将该指定操作系统从该第一数据库切换连接至该第二数据库。该技术中,通过设置多租户管理模块管理租户和数据库之间的关系,当租户需要进行业务操作时,根据该管理模块确定出对应的目标数据库,并将操作系统自动切换连接至目标数据库,从而实现不同租户间的数据安全隔离。此外,该方法还通过在该多租户管理模块中设置元数据表,该元数据表用于存储数据库中业务表的元数据信息,从而可以基于该元数据表统一维护不同租户的数据库的数据信息,提升了数据维护的便捷性。
本发明的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本发明的上述技术即可得知。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳的实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种多租户的数据库隔离方法流程示意图;
图2为本发明实施例提供的另一种多租户的数据库隔离方法流程示意图;
图3为本发明实施例提供的多租户管理端数据库的示意图;
图4为本发明实施例提供的一种多租户的数据库隔离装置示意图;
图5为本发明实施例提供的一种电子设备的结构示意图。
图标:41-目标租户确定模块;42-第二数据库确定模块;43-数据库切换模块;51-存储器;52-处理器;53-总线;54-通信接口。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清晰、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,传统的多租户的数据库隔离方法主要有两种方案,一种是基于关系数据库结构的数据隔离方案,该隔离方案包括“独立数据库”、“共享数据库、独立图表”、“共享数据库、共享图表、共享数据表”三种隔离方法;另一种是以元数据为驱动的,运行时动态编译生成的多租户的数据库方案。
其中,通过“独立数据库”方法实现多租户的数据库隔离的弊端是:数据库的安装数量增多、维护成本和购置成本高;通过“共享数据库、独立图表”实现多租户的数据库隔离方法的弊端是:出现故障时数据恢复困难,并且恢复数据库的过程中会涉及到其他租户的数据库;通过“共享数据库、共享图表、共享数据表”方法实现多租户的数据库隔离的弊端是:租户间的数据隔离级别低、安全性差、数据备份和恢复困难;此外,通过以“元数据为驱动的,运行时动态编译生成的多租户的数据库方法”,该方法构建了一种以元数据驱动的多租户的数据库隔离的架构,该架构的数据模型过于复杂,还需引入各种复杂的缓存技术,数据的存储不直观,数据维护也很困难。
基于此,本发明实施例提供了一种多租户的数据库隔离方法、装置及电子设备,该技术可以应用于将单租户系统升级为多租户系统的场景。为便于对本实施例进行理解,首先对本发明实施例所公开的一种多租户的数据库隔离方法进行详细介绍。
实施例1
如图1所示,图1为本发明实施例提供的一种多租户的数据库隔离方法流程示意图,该方法包括下述步骤:
步骤S101:如果接受到用户的业务请求,根据预设的多租户管理模块确定该租户对应的目标租户;其中,该多租户管理模块运行在指定操作系统上,该指定操作系统与第一数据库通信连接;该多租户管理模块用于管理多个数据库之间的逻辑关系,每一个数据库与一个租户对应。
在本实施例中,用户的业务请求为该目标租户的用户登录请求。
例如:租户为a公司,a公司的员工为用户a1,当用户a1提交登录请求,多租户管理模块根据用户a1的提交登录请求中的租户信息确定该租户信息对应的目标租户为a公司。
在其中一种或多种实施方式中,该多租户管理模块为多租户管理端数据库,该多租户管理端数据库中预设有m个顶级租户的数据库,该m个顶级租户的数据库的数据相互隔离;每一个该顶级租户对应的数据库包括n个下级租户对应的数据库;该n个下级租户对应的数据库的数据之间相互隔离;该顶级租户可以根据q种访问策略,访问与其对应的下级租户对应的数据库;每个下级租户的数据库与该下级租户的租户信息一一对应。
此外,该多租户管理模块中设置元数据表,该元数据表用于存储数据库中业务表的元数据信息。在数据维护时,不需要修改数据库中业务表,只需要修改该数据库中业务表的某条元数据信息就可以修改该数据库的结构,从而可以基于该元数据表统一维护不同租户的数据库的数据信息,并且建立了多个数据库之间的逻辑关系,每一个数据库与一个租户对应。
步骤S102:根据该多租户管理模块确定该目标租户对应的第二数据库;其中,该第二数据库与该第一数据库的结构一致。
在本实施例中,因该多租户管理模块中设置元数据表,该元数据表用于存储数据库中业务表的元数据信息,可以通过该元数据信息维护目标租户对应的数据库,使该第二数据库与该第一数据库的结构一致。
例如:通过修改该元数据信息设置一种数据库业务表的结构,与第一数据库的业务表的结构一致,以使与该元数据信息相关的数据库的结构与第一数据库的结构一致。
步骤S103:将该指定操作系统从该第一数据库切换连接至该第二数据库。
在本实施例中,假设该指定操作系统已与第一数据库相关联,在用户的登录请求提交后,多租户管理模块找到与该用户对应的目标租户相关联的数据库,然后将该指定操作系统从该第一数据库切换连接至该用户对应的目标租户相关联的数据库。
本发明实施例提供的多租户的数据库隔离方法,该方法包括:如果接受到用户的业务请求,根据预设的多租户管理模块确定该租户对应的目标租户;其中,该多租户管理模块运行在指定操作系统上,该指定操作系统与第一数据库通信连接;该多租户管理模块用于管理多个数据库之间的逻辑关系,每一个数据库与一个租户对应;根据该多租户管理模块确定该目标租户对应的第二数据库;其中,该第二数据库与该第一数据库的结构一致;将该指定操作系统从该第一数据库切换连接至该第二数据库。该方法中,当租户需要进行业务操作时,根据该管理模块确定出对应的目标数据库,并将操作系统自动切换连接至目标数据库,从而实现不同租户间的数据安全隔离。此外,该方法还通过在该多租户管理模块中设置元数据表,基于该元数据表统一维护不同租户的数据库的数据信息,提升了数据维护的便捷性。
实施例2
在图1所示方法的基础上,本发明还提供另一种多租户的数据库隔离方法,如图2所示,图2为本发明实施例提供的另一种多租户的数据库隔离方法流程示意图。
步骤S201:如果接受到用户的业务请求,从预设的多租户管理模块的租户表中读取该租户对应的目标租户;其中,该多租户管理模块运行在指定操作系统上,该指定操作系统与第一数据库通信连接;该多租户管理模块中预设有租户表和数据源表;该租户表用于存储租户的租户信息,该数据源表用于存储租户的数据源的信息,每一个数据源的信息对应一个数据库。
在本实施例中,该多租户管理模块为多租户管理端数据库,图3为本发明实施例提供的多租户管理端数据库的示意图。如图3所见,该多租户管理端数据库包括1个顶级租户的数据库,该顶级租户的数据库包括n个下级租户对应的数据库;该n个下级租户的数据库的数据之间完全隔离;该顶级租户可以根据q种访问策略,访问与其对应的下级租户的数据库;每个下级租户的数据库与该租户信息一一对应;该多租户管理模块根据上述多个数据库组成的多租户管理端数据库的模型。此外,该顶级租户的数据源可以生成该顶级租户的第二数据库,该顶级租户的数据库包含n个该下级租户的数据库的schema,该schema表示的是数据库对象集合,其包含了各种对像,比如:表、视图、存储过程以及索引等;顶级租户的数据库、顶级租户的数据库的数据源以及该下级租户的数据库的schema包含该下级租户对应的数据库业务表,该业务表包含n个表字段。
在其中一种实施方式中,该多租户管理端数据库也可以由m个顶级租户的数据库组成,该m个顶级租户的数据库的数据相互隔离,每个顶级租户的数据库与上述多租户管理端数据库具有相同架构。
在本实施例中,在多租户管理模块预设租户表,该租户表储存有所有租户的租户信息;该指定操作系统为单租户操作系统;该单租户操作系统与第一数据库通信连接;该数据源的信息用于描述与其对应的租户的数据库的信息,所以每一个数据源对应一个数据库。
步骤S202:从该多租户管理模块的数据源表中读取该目标租户对应的数据源的信息。
在其中一种实施方式中,数据源的信息可以包括租户的数据源名称,通过读取该租户的数据源名称可以确定该目标租户对应的数据源的信息。
步骤S203:通过读取的该数据源的信息确定该目标租户对应的第二数据库;其中,该第二数据库与该第一数据库的结构一致。
在其中一种实施方式中,该目标租户对应的第二数据库预先通过下述步骤A1-A6创建:
A1.接收该目标租户的数据库创建请求;该数据库创建请求中携带有该目标租户的基本信息。
在本实施例中,该目标租户在注册时,在指定操作系统提交该目标租户的基本信息,其中,该基本信息包括:该目标租户的租户名称、该目标租户的第二数据库名称、该目标租户的第二数据库的数据源名称。
A2.将该目标租户的基本信息保存到该多租户管理模块的预设租户表中。
A3.根据该目标租户的基本信息创建数据源配置文件,并注册该目标租户的数据源。
在本实施例中,根据该目标租户的基本信息,通过预设的数据源创建模版,创建该数据源配置文件并注册该数据源。注册后的该数据源,保存到ThreadLocal软件中。这里,ThreadLocal软件是Java语言的软件开发工具包中提供的一种编写多线程程序的工具,通过该ThreadLocal软件可以实现将该目标租户的数据源构建该目标租户对应的第二数据库;注册数据源是为了对该目标租户对应的第二数据库进行编程操作。
A4.将注册的该数据源的信息保存到该多租户管理模块的预设数据源表中。
A5.根据预设的数据库建表语句配置,创建该目标租户的业务数据库;其中,该业务数据库中包括至少一个业务表。
在本实施例中,通过该数据源配置文件,创建该目标租户的业务数据库,在该数据源配置文件中,可以根据数据存放标签区分不同数据库执行相应的建表语句,创建的该业务数据库中包括至少一个业务表。
A6.通过预设的初始化脚本对该业务数据库中的业务表进行初始化操作,得到创建好的第二数据库;其中,该初始化脚本基于该第一数据库得到。
在本实施例中,该初始化脚本通过下述步骤B1-B3得到:
B1.获取该第一数据库中业务表的元数据。
在其中一种实施方式中,通过预先安装的Metacat抽取该第一数据库中业务表的元数据。这里,Metacat软件提供一种元数据发现服务框架,用于元数据的发现、元数据的存储以及元数据的解析。
B2.解析该元数据得到对应的元数据信息。
这里,解析该元数据得到对应的元数据信息的过程也可以在该Metacat软件中进行。
B3.根据该元数据信息生成业务数据库的初始化脚本。
例如,该初始化脚本可以为ddl.sql脚本。
在其中一种或多种实施方式中,在生成上述初始化脚本之后,对该业务数据库中的业务表进行初始化操作,得到创建好的第二数据库,然后将该元数据信息保存至该多租户管理模块的预设元数据表中。
在其中一种或多种实施方式中,该指定操作系统为单租户系统,该单租户系统与第一数据库通讯连接。首先在该单租户系统中建立主数据源,将该主数据源连接到该单租户系统上,通过预先安装的Metacat软件获取单租户系统的数据库中业务表的元数据,解析该元数据中表和字段等元数据信息,并将该元数据信息保存至该多租户管理模块的预设的元数据表中,再通过Metacat软件解析该元数据得到对应的元数据信息,生成该目标租户的业务数据库的初始化脚本,最后通过该初始化脚本对该目标租户对应的业务数据库中的业务表进行初始化,以使该目标租户对应的第二数据库与该第一数据库的数据结构一致。经过多个目标租户对应的业务数据库中的业务表的初始化过程,最终实现了由该单租户系统升级为多租户系统的过程。
进一步地,通过多租户管理模块中设置的元数据表,该元数据表存储有单租户系统的元数据信息,再经过上述步骤B1-B3生成该目标租户的业务数据库的初始化脚本,通过该初始化脚本对该目标租户对应的业务数据库中的业务表进行初始化的过程,因此建立了多个数据库之间的逻辑关系,从而可以基于该元数据表统一维护不同租户的数据库的数据信息,提升了数据维护的便捷性。
在其中一种或多种实施方式中,在上述步骤A5之后,还要将该第二数据库的配置信息保存到该多租户管理模块的数据库表中;其中,该配置信息包括:数据库文件的存储路径、备份策略、访问策略。这里,该第二数据库的配置信息主要用于描述该第二数据库的配置属性,在使用该多租户管理模块的数据库表时,可以增加备份策略以及租户的访问权限。
步骤S204:将该指定操作系统从该第一数据库切换连接至该第二数据库。
在本实施例中,假设该指定操作系统已与第一数据库相关联,在用户的登录请求提交后,多租户管理模块会根据该租户表和该数据源表找到与该用户对应的目标租户相关联的数据库,然后将该指定操作系统从该第一数据库切换连接至用户对应的目标租户相关联的数据库。
本发明实施例提供的多租户的数据库隔离方法,该方法包括:如果接受到用户的业务请求,从预设的多租户管理模块的租户表中读取该租户对应的目标租户;其中,该多租户管理模块运行在指定操作系统上,该指定操作系统与第一数据库通信连接;该多租户管理模块中预设有租户表和数据源表;该租户表用于存储租户的租户信息,该数据源表用于存储租户的数据源的信息,每一个数据源对应一个数据库;从该多租户管理模块的数据源表中读取该目标租户对应的数据源的信息;通过读取的该数据源的信息确定该目标租户对应的第二数据库;其中,该第二数据库与该第一数据库的结构一致;将该指定操作系统从该第一数据库切换连接至该第二数据库。该方法通过在多租户管理模块预设租户表和数据源表,每一个数据源对应一个租户的数据库,不但实现了租户的数据库隔离,而且进一步提升了数据查询的便捷性。此外,该方法还通过在该多租户管理模块中设置元数据表,该元数据表用于存储数据库中业务表的元数据信息,基于元数据信息生成该目标租户的业务数据库的初始化脚本,通过该初始化脚本对该目标租户对应的业务数据库中的业务表进行初始化的过程,便于维护不同租户的数据库的数据信息,进一步提升了数据维护的便捷性。
实施例3
本发明实施例还提供了一种多租户的数据库隔离装置,如图4所示,图4为本发明实施例提供的一种多租户的数据库隔离装置示意图,包括:
目标租户确定模块41,用于如果接受到用户的业务请求,根据预设的多租户管理模块确定该租户对应的目标租户;其中,该多租户管理模块运行在指定操作系统上,该指定操作系统与第一数据库通信连接;该多租户管理模块用于管理多个数据库之间的逻辑关系,每一个数据库与一个租户对应。
第二数据库确定模块42,用于根据该多租户管理模块确定该目标租户对应的第二数据库;其中,该第二数据库与该第一数据库的结构一致。
数据库切换模块43,用于将该指定操作系统从该第一数据库切换连接至该第二数据库。
目标租户确定模块41、第二数据库确定模块42和数据库切换模块43依次相连。
在其中一种可能的实施方式中,该多租户管理模块中预设有租户表和数据源表;该租户表用于存储租户的租户信息,该数据源表用于存储租户的数据源的信息,每一个数据源对应一个数据库。该目标租户确定模块41,还用于如果接受到用户的业务请求,从该多租户管理模块的租户表中读取该租户对应的目标租户。
在另一种可能的实施方式中,该多租户管理模块中预设有租户表和数据源表;该租户表用于存储租户的租户信息,该数据源表用于存储租户的数据源的信息,每一个数据源的信息对应一个数据库。该第二数据库确定模块42,还用于从该多租户管理模块的数据源表中读取该目标租户对应的数据源的信息;通过读取的该数据源的信息确定该目标租户对应的第二数据库。
在另一种可能的实施方式中,该第二数据库确定模块42,还用于接收该目标租户的数据库创建请求;该数据库创建请求中携带有该目标租户的基本信息;将该目标租户的基本信息保存到该多租户管理模块的预设租户表中;根据该目标租户的基本信息创建数据源配置文件,并注册该目标租户的数据源;将注册的该数据源的信息保存到该多租户管理模块的预设数据源表中;根据预设的数据库建表语句配置,创建该目标租户的业务数据库;其中,该业务数据库中包括至少一个业务表;通过预设的初始化脚本对该业务数据库中的业务表进行初始化操作,得到创建好的第二数据库;其中,该初始化脚本基于该第一数据库得到。
在另一种可能的实施方式中,该第二数据库确定模块42,还用于获取该第一数据库中业务表的元数据;解析该元数据得到对应的元数据信息;根据该元数据信息生成业务数据库的初始化脚本。
在另一种可能的实施方式中,该第二数据库确定模块42,还用于通过预先安装的Metacat抽取该第一数据库中业务表的元数据。
在另一种可能的实施方式中,该第二数据库确定模块42,还用于将该第二数据库的配置信息保存到该多租户管理模块的数据库表中;其中,该配置信息包括:数据库文件的存储路径、备份策略、访问策略。
在另一种可能的实施方式中,该第二数据库确定模块42,还用于将该元数据信息保存至该多租户管理模块的预设元数据表中。
本发明实施例提供的多租户的数据库隔离装置,与上述实施例提供的多租户的数据库隔离方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
实施例4
本实施例提供了一种电子设备,包括处理器和存储器,该存储器存储有能够被该处理器执行的计算机可执行指令,该处理器执行该计算机可执行指令以实现多租户的数据库隔离方法的步骤。
参见图5所示的一种电子设备的结构示意图,该电子设备包括:存储器51、处理器52,存储器51中存储有可在处理器52上运行的计算机程序,处理器执行计算机程序时实现上述多租户的数据库隔离方法提供的步骤。
如图5所示,该设备还包括:总线53和通信接口54,处理器52、通信接口54和存储器51通过总线53连接;处理器52用于执行存储器51中存储的可执行模块,例如计算机程序。
其中,存储器51可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口54(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线53可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器51用于存储程序,处理器52在接收到执行指令后,执行程序,前述本发明任一实施例揭示多租户的数据库隔离方法装置所执行的方法可以应用于处理器52中,或者由处理器52实现。处理器52可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器52中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器52可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processing,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器51,处理器52读取存储器51中的信息,结合其硬件完成上述方法的步骤。
进一步地,本发明实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器52调用和执行时,机器可执行指令促使处理器52实现上述多租户的数据库隔离方法。
本发明实施例提供的多租户的数据库隔离方法、装置和电子设备具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,但是本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种多租户的数据库隔离方法,其特征在于,包括:
如果接受到用户的业务请求,根据预设的多租户管理模块确定所述租户对应的目标租户;其中,所述多租户管理模块运行在指定操作系统上,所述指定操作系统与第一数据库通信连接;所述多租户管理模块用于管理多个数据库之间的逻辑关系,每一个数据库与一个租户对应;
根据所述多租户管理模块确定所述目标租户对应的第二数据库;其中,所述第二数据库与所述第一数据库的结构一致;
将所述指定操作系统从所述第一数据库切换连接至所述第二数据库。
2.根据权利要求1所述的方法,其特征在于,所述多租户管理模块中预设有租户表和数据源表;所述租户表用于存储租户的租户信息,所述数据源表用于存储租户的数据源的信息,每一个数据源对应一个数据库。
3.根据权利要求2所述的方法,其特征在于,所述根据预设的多租户管理模块确定所述租户对应的目标租户的步骤,包括:
从所述多租户管理模块的租户表中读取所述租户对应的目标租户;
所述根据所述多租户管理模块确定所述目标租户对应的第二数据库的步骤,包括:
从所述多租户管理模块的数据源表中读取所述目标租户对应的数据源的信息;
通过读取的所述数据源的信息确定所述目标租户对应的第二数据库。
4.根据权利要求1所述的方法,其特征在于,所述第二数据库预先通过下述方式创建:
接收所述目标租户的数据库创建请求;所述数据库创建请求中携带有所述目标租户的基本信息;
将所述目标租户的基本信息保存到所述多租户管理模块的预设租户表中;
根据所述目标租户的基本信息创建数据源配置文件,并注册所述目标租户的数据源;
将注册的所述数据源的信息保存到所述多租户管理模块的预设数据源表中;
根据预设的数据库建表语句配置,创建所述目标租户的业务数据库;其中,所述业务数据库中包括至少一个业务表;
通过预设的初始化脚本对所述业务数据库中的业务表进行初始化操作,得到创建好的第二数据库;其中,所述初始化脚本基于所述第一数据库得到。
5.根据权利要求4所述的方法,其特征在于,所述初始化脚本通过下述方式得到:
获取所述第一数据库中业务表的元数据;
解析所述元数据得到对应的元数据信息;
根据所述元数据信息生成业务数据库的初始化脚本。
6.根据权利要求5所述的方法,其特征在于,所述获取所述第一数据库中业务表的元数据的步骤,包括:
通过预先安装的Metacat抽取所述第一数据库中业务表的元数据。
7.根据权利要求4所述的方法,其特征在于,在通过预设的初始化脚本对所述业务数据库中的业务表进行初始化操作,得到创建好的第二数据库的步骤之后,所述方法还包括:
将所述第二数据库的配置信息保存到所述多租户管理模块的数据库表中;其中,所述配置信息包括:数据库文件的存储路径、备份策略、访问策略。
8.根据权利要求5所述的方法,其特征在于,在所述解析所述元数据得到对应的元数据信息的步骤之后,所述方法还包括:
将所述元数据信息保存至所述多租户管理模块的预设元数据表中。
9.一种多租户的数据库隔离装置,其特征在于,包括:
目标租户确定模块,用于如果接受到用户的业务请求,根据预设的多租户管理模块确定所述租户对应的目标租户;其中,所述多租户管理模块运行在指定操作系统上,所述指定操作系统与第一数据库通信连接;所述多租户管理模块用于管理多个数据库之间的逻辑关系,每一个数据库与一个租户对应;
第二数据库确定模块,用于根据所述多租户管理模块确定所述目标租户对应的第二数据库;其中,所述第二数据库与所述第一数据库的结构一致;
数据库切换模块,用于将所述指定操作系统从所述第一数据库切换连接至所述第二数据库。
10.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求1至8任一项所述的多租户的数据库隔离方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110273444.2A CN112906054A (zh) | 2021-03-12 | 2021-03-12 | 多租户的数据库隔离方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110273444.2A CN112906054A (zh) | 2021-03-12 | 2021-03-12 | 多租户的数据库隔离方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112906054A true CN112906054A (zh) | 2021-06-04 |
Family
ID=76105026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110273444.2A Pending CN112906054A (zh) | 2021-03-12 | 2021-03-12 | 多租户的数据库隔离方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112906054A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113468125A (zh) * | 2021-09-03 | 2021-10-01 | 深圳市信润富联数字科技有限公司 | 一种文件服务方法、系统、设备及计算机可读存储介质 |
CN113609105A (zh) * | 2021-08-20 | 2021-11-05 | 南威软件股份有限公司 | 一种协同系统数据物理隔离的实现方法 |
CN116760705A (zh) * | 2023-08-18 | 2023-09-15 | 苏州思萃工业互联网技术研究所有限公司 | 基于综合能源管理系统的多租户平台隔离管理系统及方法 |
CN117076473A (zh) * | 2023-10-11 | 2023-11-17 | 浪潮通用软件有限公司 | 一种SaaS多租户的元数据运行方法、系统、设备及介质 |
-
2021
- 2021-03-12 CN CN202110273444.2A patent/CN112906054A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113609105A (zh) * | 2021-08-20 | 2021-11-05 | 南威软件股份有限公司 | 一种协同系统数据物理隔离的实现方法 |
CN113468125A (zh) * | 2021-09-03 | 2021-10-01 | 深圳市信润富联数字科技有限公司 | 一种文件服务方法、系统、设备及计算机可读存储介质 |
CN116760705A (zh) * | 2023-08-18 | 2023-09-15 | 苏州思萃工业互联网技术研究所有限公司 | 基于综合能源管理系统的多租户平台隔离管理系统及方法 |
CN116760705B (zh) * | 2023-08-18 | 2023-10-31 | 苏州思萃工业互联网技术研究所有限公司 | 基于综合能源管理系统的多租户平台隔离管理系统及方法 |
CN117076473A (zh) * | 2023-10-11 | 2023-11-17 | 浪潮通用软件有限公司 | 一种SaaS多租户的元数据运行方法、系统、设备及介质 |
CN117076473B (zh) * | 2023-10-11 | 2024-02-06 | 浪潮通用软件有限公司 | 一种SaaS多租户的元数据运行方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112906054A (zh) | 多租户的数据库隔离方法、装置及电子设备 | |
US10972367B2 (en) | Provisioning framework for binding related cloud services | |
CN108549580B (zh) | 自动部署Kubernetes从节点的方法及终端设备 | |
US10225140B2 (en) | Portable instance provisioning framework for cloud services | |
US11334474B2 (en) | Fast change impact analysis tool for large-scale software systems | |
US20110016451A1 (en) | Method and system for generating test cases for a software application | |
CN109063077B (zh) | 一种基于弹性搜索的数据访问方法及装置 | |
CN113360519B (zh) | 数据处理方法、装置、设备和存储介质 | |
CN112558946A (zh) | 一种生成代码的方法、装置、设备和计算机可读存储介质 | |
CN109522043B (zh) | 一种配置数据的管理方法、装置及存储介质 | |
CN109165175B (zh) | 设备标识生成方法和装置 | |
CN111931220A (zh) | 区块链网络的共识处理方法、装置、介质及电子设备 | |
CN110063042A (zh) | 一种数据库故障的响应方法及其终端 | |
CN114281803A (zh) | 数据迁移方法、装置、设备、介质和程序产品 | |
CN111651235A (zh) | 一种虚拟机组任务管理方法及装置 | |
CN115086047B (zh) | 接口鉴权方法、装置、电子设备及存储介质 | |
CN116627751A (zh) | 服务日志的采集方法、装置及电子设备 | |
US20190087458A1 (en) | Interception of database queries for delegation to an in memory data grid | |
CN109947451B (zh) | 一种集群应用文件更新方法、系统、介质及设备 | |
CN109284278B (zh) | 基于数据分析技术的计算逻辑迁移方法及终端设备 | |
WO2019056545A1 (zh) | 测试机自动化管理方法、装置、设备及存储介质 | |
CN114357001A (zh) | 多集群的数据查询方法、装置、监控平台及存储介质 | |
CN116132250A (zh) | 运维系统、方法、存储介质、电子设备 | |
US9369352B1 (en) | Method of capturing server and operating system metrics for virtual to physical topology reporting | |
CN112464596A (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 |