CN108737325B - 一种多租户数据隔离方法、装置及系统 - Google Patents
一种多租户数据隔离方法、装置及系统 Download PDFInfo
- Publication number
- CN108737325B CN108737325B CN201710240807.6A CN201710240807A CN108737325B CN 108737325 B CN108737325 B CN 108737325B CN 201710240807 A CN201710240807 A CN 201710240807A CN 108737325 B CN108737325 B CN 108737325B
- Authority
- CN
- China
- Prior art keywords
- tenant
- data
- storage space
- data storage
- space corresponding
- 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.)
- Active
Links
- 238000002955 isolation Methods 0.000 title claims abstract description 34
- 238000013500 data storage Methods 0.000 claims abstract description 129
- 238000000034 method Methods 0.000 claims abstract description 26
- 238000004891 communication Methods 0.000 claims abstract description 12
- 238000013507 mapping Methods 0.000 claims description 28
- 230000004069 differentiation Effects 0.000 claims description 9
- 238000011161 development Methods 0.000 abstract description 10
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 101100322581 Caenorhabditis elegans add-1 gene Proteins 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 101100322583 Caenorhabditis elegans add-2 gene Proteins 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive 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/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
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24573—Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5015—Service provider selection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Library & Information Science (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computer And Data Communications (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种多租户数据隔离方法、装置及系统,涉及通信技术领域,SaaS应用开发工作量大、效率低的问题,同时提高了多租户数据隔离的安全性。该方法应用于包括业务控制层和服务层的SaaS应用服务器,包括:所述业务控制层接收租户客户端发送的数据操作请求,所述数据操作请求包含第一租户标识;所述业务控制层将所述第一租户标识发送给所述服务层;所述服务层根据预设规则,确定所述数据操作请求为对所述第一租户标识对应的数据存储空间进行的数据操作;所述服务层对所述第一租户标识对应的数据存储空间进行所述数据操作。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种多租户数据隔离方法、装置及系统。
背景技术
软件即服务(Software as a Service,SaaS)是一种软件应用模式,即通过互联网提供软件服务,租户按需租用,通常一个软件可以同时服务多个租户,通过降低多个租户中每个租户的成本,可以大大降低服务交付、运维成本,实现最大化收益。然而,在多租户模式下,由于软件堆栈是共享的,生成和使用的数据也是多租户共享,从而多租户之间的数据会相互干扰,进而导致业务错误的问题。因此,需要对多租户数据进行安全隔离。
目前,在多租户模式下,对多租户数据进行安全隔离时,主要有以下两种方法:第一种、将租户标识添加到多租户应用的代码中,如图1所示,具体是将租户标识作为应用程序接口(Application Program Interface,API)的一个参数方式,从前端的用户界面(UserInterface,UI)到业务控制层、服务层,再到后端数据库(Database)访问API,逐层进行传输,每层API根据租户标识在API内部增加区分租户的代码,以实现租户之间数据的安全隔离。第二种、在多租户应用的代码中设置隔离点,并为每个租户生成私有的类加载器,在隔离点处通过每个租户对应的类加载器进行加载处理,以实现租户之间数据的安全隔离。
上述第一种方法中,区分多租户的每个API都需要开发相应的代码,开发工作量大、效率低,且功能代码和非功能代码耦合在一起,增加维护成本。第二种方法中设置隔离点时需要修改多处源代码,效率低且代码可读性差,同时也增加了维护成本。
发明内容
本申请的实施例提供一种多租户数据隔离方法、装置及系统,解决了现有技术中SaaS应用开发工作量大、效率低的问题,同时提高了多租户数据隔离的安全性。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供一种多租户数据隔离方法,应用于SaaS应用服务器,该SaaS应用服务器包括业务控制层和服务层,该方法包括:业务控制层接收租户客户端发送的数据操作请求,该数据操作请求包含第一租户标识;业务控制层将第一租户标识发送给服务层;服务层根据预设规则,确定数据操作请求为对第一租户标识对应的数据存储空间进行的数据操作;服务层对第一租户标识对应的数据存储空间进行数据操作。上述技术方案中,业务控制层将第一租户标识发送给服务层,从而避免了将第一租户标识作为API的一个参数进行传输,降低了应用的开发工作量、提高了开发效率,服务层根据预设规则,确定该数据操作请求为对第一租户标识对应的数据存储空间进行的数据操作,并对该数据存储空间进行数据操作,从而在数据操作时是对每个租户标识对应的数据存储空间进行数据操作,实现了多租户数据在物理存储上的隔离,提高了多租户数据隔离的安全性。
结合第一方面,在第一方面的第一种可能的实现方式中,预设规则包括需要区分租户的数据操作请求。上述可能的实现方式中,服务层按照需要区分租户的数据操作请求,确定当前的数据操作请求是对第一租户标识是对应的数据存储空间进行数据操作,从而在该数据存储空间上进行相应的数据操作,实现多租户数据的安全隔离。
结合第一方面或者第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,服务层对第一租户标识对应的数据存储空间进行数据操作,包括:确定该数据操作的操作类型;若该操作类型为读操作,则根据租户标识与数据存储空间之间的映射关系,确定第一租户标识对应的数据存储空间,从第一租户标识对应的数据存储空间中读取目标数据,并将读操作的原数据修改为目标数据;若该操作类型为写操作,则根据租户标识与数据存储空间之间的映射关系,确定第一租户标识对应的数据存储空间,并将写操作的目标数据写入第一租户对应的数据存储空间。上述可能的实现方式中,服务层确定数据操作的操作类型,并根据该操作类型为读操作或者写操作在第一租户标识对应的存储空间进行相应的数据操作,从而实现多租户数据的安全隔离,且保证数据操作的正确性。
结合第一方面至第一方面的第二种可能的实现方式中的任一种可能的实现方式,在第一方面的第三种可能的实现方式中,该数据操作对应的应用程序接口API通过元数据方式进行定义。上述可能的实现方式中,通过元数据方式进行定义该数据操作对应的API,可以减少系统直接访问数据库的次数,提高数据的读写效率,提升系统的整体性能。
结合第一方面至第一方面的第三种可能的实现方式中的任一种可能的实现方式,在第一方面的第四种可能的实现方式中,业务控制层接收租户客户端发送的数据操作请求之前,该方法还包括:业务控制层接收租户客户端发送的注册请求,注册请求携带第一租户的数据;业务控制层根据注册请求,确定第一租户标识;业务控制层为第一租户分配第一租户标识对应的数据存储空间,第一租户标识对应的数据存储空间用于存储第一租户的数据;业务控制层将第一租户标识与第一租户标识对应的数据存储空间,存储在租户标识与数据存储空间之间的映射关系中。上述可能的实现方式中,业务控制层在接收到租户客户端发送的注册请求时,根据注册请求确定租户标识,并为租户分配与其租户标识对应的数据存储空间用于存储该租户的数据,从而在多租户数据的物理存储上,实现多租户数据的安全隔离,提高了多租户数据隔离的安全性。
第二方面,提供一种SaaS应用服务器,该SaaS应用服务器包括:控制单元,用于接收租户客户端发送的数据操作请求,该数据操作请求包含第一租户标识;控制单元,还用于将第一租户标识发送给服务单元;服务单元,用于根据预设规则,确定该数据操作请求为对第一租户标识对应的数据存储空间进行的数据操作;服务单元,还用于对第一租户标识对应的数据存储空间进行数据操作。
结合第二方面,在第二方面的第一种可能的实现方式中,预设规则包括需要区分租户的数据操作请求。
结合第二方面或者第二方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,服务单元具体用于:确定数据操作的操作类型;若操作类型为读操作,则根据租户标识与数据存储空间之间的映射关系,确定第一租户标识对应的数据存储空间,从第一租户标识对应的数据存储空间中读取目标数据,并将读操作的原数据修改为目标数据;若操作类型为写操作,则根据租户标识与数据存储空间之间的映射关系,确定第一租户标识对应的数据存储空间,并将写操作的目标数据写入第一租户对应的数据存储空间中。
结合第二方面至第二方面的第二种可能的实现方式中的任一种可能的实现方式,在第二方面的第三种可能的实现方式中,该数据操作对应的应用程序接口API通过元数据方式进行定义。
结合第二方面至第二方面的第三种可能的实现方式中的任一种可能的实现方式,在第二方面的第四种可能的实现方式中,控制单元还用于:接收租户客户端发送的注册请求,注册请求携带第一租户的数据;根据注册请求,确定第一租户标识;为第一租户分配第一租户标识对应的数据存储空间,第一租户标识对应的数据存储空间用于存储第一租户的数据;将第一租户标识与第一租户标识对应的数据存储空间,存储在租户标识与数据存储空间之间的映射关系中。
第三方面,提供一种SaaS应用服务器,该SaaS应用服务器包括存储器、处理器、总线和通信接口,存储器中存储代码和数据,处理器与存储器通过总线连接,处理器运行存储器中的代码使得SaaS应用服务器执行上述第一方面至第一方面的第四种可能的实现方式中的任一项所提供的多租户数据隔离方法。
第四方面,提供一种系统,该系统包括租户客户端和SaaS应用服务器;其中,该SaaS应用服务器为上述第二方面至第二方面的第四种可能实现方式中的任一项、或者上述第三方面所提供的SaaS应用服务器。
第五方面,提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当设备的至少一个处理器执行该计算机执行指令时,设备执行上述第一方面或者第一方面的任一种可能的实现方式所提供的多租户数据隔离方法。
第六方面,提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备实施上述第一方面或者第一方面的任一种可能的实现方式所提供的多租户数据隔离方法。
附图说明
图1为本申请实施例提供的一种租户标识的传递示意图;
图2为本申请实施例提供的一种通信系统的结构示意图;
图3为本申请实施例提供的一种SaaS应用服务器的结构示意图;
图4为本申请实施例提供的一种多租户数据隔离方法的流程图;
图5为本申请实施例提供的另一种多租户数据隔离方法的流程图;
图6为本申请实施例提供的一种SaaS应用服务器的结构示意图;
图7为本申请实施例提供的另一种SaaS应用服务器的结构示意图。
具体实施方式
在介绍本申请实施例之前,首先对本申请涉及的技术名词进行介绍说明。
软件即服务(Software as a Service,SaaS)是一种基于互联网提供软件服务的应用模式,租户按需租用,通常一个软件可以同时服务多个租户。其中,SaaS提供商为企业搭建信息化所需要的所有网络基础设施及软件、硬件运作平台,并负责所有前期的实施、后期的维护等一系列服务,企业无需购买软硬件、建设机房、招聘技术人员等,即可通过互联网使用信息系统。
租户是指按需订购使用SaaS应用的企业组织或者群组等,用户是指直接使用SaaS应用的用户,且一个租户可以包括多个用户。比如,公司A订购使用SaaS应用1,则公司A可以称为SaaS应用1的租户,公司A的员工可以称为使用SaaS应用1的用户。
多租户区分点,是指多个租户之间不能共享的数据,数据的生成和使用都需要和租户绑定,租户之间彼此不能相互访问。比如,缓存队列是一个所有租户共享的缓存队列cacheQueue,A租户生成的缓存项<“userDetail”,“valuea”>,B租户生成的缓存项<“userDetail”,valueb>同时保存到缓存队列cacheQueue中,但是A租户通过标识“userDetail”只能查到“valuea”,租户B通过标识“userDetail”只能查询到“valueb”。
应用程序接口(Application Program Interface,API)是一组定义、程序及协议的集合,通过API实现计算机软件之间的相互通信。API的一个主要功能是提供通用功能集,开发人员通过调用API函数对应用程序进行开发,可以减轻编程任务。API也可以作为一种中间件,为各种不同平台提供数据共享。
图2为本申请实施例所应用的通信系统的结构示意图,参见图2,该通信系统包括租户客户端101和SaaS应用服务器102。其中,租户客户端101的设备可以是计算机、笔记本电脑、平板电脑、手机、上网本等电子设备,且可以通过互联网访问SaaS应用服务器102上所提供的SaaS服务。SaaS应用服务器102可用于为租户提供SaaS服务,并对多租户数据按租户进行安全隔离,且可以包括用户界面(User Interface,UI)、业务控制层(Action)、服务层(Service)和数据库(DataBase)。其中,用户界面可用于生成与租户标识对应的显示界面:业务控制层可用于控制各业务处理的走向,其与SaaS应用服务器102的处理系统前后台连接;服务层也可以称为业务逻辑层,用于处理业务的相关流程;数据库用于完善管理各种数据库对象,具有数据组织、用户管理、安全检查等功能。可选的,在服务层与数据库之间还可以包括数据访问层(DAO),DAO为数据连接及数据库处理,可以作为数据处理与数据库操作的中间件。
如图3所示,为本申请实施例提供的一种SaaS应用服务器102的结构示意图,参见图3,SaaS应用服务器102可以包括应用、多租户数据隔离模块和数据存储器。其中,应用可以为需要提供SaaS服务的非SaaS应用,或者现有技术中的SaaS应用。多租户数据隔离模块包括属于业务控制层的注册单元、数据存储空间管理单元、租户标识识别单元和租户标识传输单元,以及属于服务层的多租户区分点数据转存单元。数据存储器位于SaaS应用服务器102的内存中,用于存储多租户区分点数据。
在本申请实施例中,注册单元用于接收租户注册使用SaaS应用,根据租户的注册信息为租户分配系统唯一的标识作为租户标识,比如,为租户A1分配一个唯一标识“a1”。注册单元还可以用于请求数据存储空间管理单元为租户分配对应的数据存储空间。
数据存储空间管理单元,用于向数据存储器申请一块动态存储空间作为多租户区分点数据储存空间,并分配给一个租户用于只存储该租户数据的数据存储空间,租户数据按分配的数据存储空间进行存储,强制隔离租户数据以保障租户数据的安全。数据存储空间管理单元还可以存储租户标识与数据存储空间之间的映射关系。比如,为租户A1分配一个Map存储结构的对象a1DataBlock作为其数据存储空间,并记录映射关系,如<a1,a1DataBlock>。
租户标识识别单元,根据租户的数据操作请求获取租户标识,数据操作请求中包含租户标识或者与租户标识有关的数据可以提取出租户标识。比如,租户A1发起的URL“http://www.crm.com/a1”,则可以将”a1”确定为租户A1的租户标识。
租户标识传输单元,在数据访问请求执行的过程中,若需要使用租户标识,则可以通过租户标识传输单元获取租户标识,从而不需要在使用租户标识的API中增加租户标识参数,从而提高租户标识使用的开发效率。
多租户区分点数据转存单元,用于根据预设规则,确定数据操作请求是对租户标识对应的数据存储空间进行的数据操作,以及对该数据存储空间进行数据操作。
图4为本申请实施例提供的一种多租户数据隔离方法的流程图,应用于上述图2或图3所示的SaaS应用服务器,该SaaS应用服务器包括业务控制层和服务层,参见图4,该方法包括以下几个步骤。
步骤201:业务控制层接收租户客户端发送的数据操作请求,该数据操作请求包含第一租户标识。
其中,SaaS应用服务器可以为多个租户提供SaaS服务,第一租户可以是该多个租户中的任一租户,第一租户的用户可以通过租户客户端向SaaS应用服务器发送数据操作请求,比如可以通过租户客户端设备上的浏览器发送数据操作请求,从而使SaaS应用服务器的业务控制层接收到该数据操作请求。
另外,该数据操作请求包含第一租户标识,是指该数据操作请求直接包括第一租户标识,或者包括与第一租户标识有关的信息,业务控制层接收到该数据操作请求时,可以从与第一租户标识有关的信息中提取出第一租户标识。
步骤202:业务控制层将第一租户标识发送给服务层。
当租户客户端发送的数据操作请求直接包括第一租户标识时,业务控制层可以直接将第一租户标识发送给服务层;当租户客户端发送的数据操作请求包括与第一租户标识有关的信息时,业务控制层可以在提取出第一租户标识后,将第一租户标识发送给服务层。
比如,业务控制层可以通过如下代码段将第一租户标识传输给服务层,还可以将其传输给DAO层,从而业务控制层->服务层->DAO各层,通过transport.getTenant()即可获取第一租户标识。
MutitenantTransport transport=new MutitenantTransport();//为租户新建通道
transport.set(“a1”);//传输第一租户标识
其中,MutitenantTransport定义如下:
另外,获取第一租户标识的方式如下:
MutitenantTransport myTransport=new MutitenantTransport();
myTransport.getTenant();//获取租户标识,如a1
步骤203:服务层根据预设规则,确定该数据操作请求为对第一租户标识对应的数据存储空间进行的数据操作。
其中,租户客户端发送的数据操作请求可以分为两类:第一类是需要区分多租户的数据操作请求,即该类数据操作请求需要区分不同的租户,且对应的数据操作是对不同租户各自的数据进行的数据操作;第二类是不需要区分多租户的数据操作请求,即该类数据操作请求不需要区分不同的租户,其对应的数据操作是对多个租户的共享数据进行的数据操作。
在本申请实施例中,预设规则可以事先进行设置,比如,预设规则可以包括需要区分租户的数据操作请求。比如,需要区分租户的数据操作请求可以是缓存、消息等中对以<key,value>格式定义的数据进行数据操作时的请求,这是因为所有租户的操作数据都是相同的key,但是每个租户与key对应的value是不同的数据,因此必须隔离保障业务的正确性和安全性。第一租户标识对应的数据存储空间是指分配给第一租户,且用于存储第一租户数据的数据存储空间,该数据存储空间可以位于SaaS应用服务器的内存中。
具体的,当服务层接收到业务控制层发送的数据操作请求时,服务层可以根据预设规则确定该数据操作请求是否为需要区分租户的数据操作请求,若确定为需要区分多租户的数据操作请求,则确定该数据操作请求为对第一租户标识对应的数据存储空间进行的数据操作。
步骤204:服务层对第一租户标识对应的数据存储空间进行数据操作。
其中,该数据操作对应的操作类型可以是写操作,也可以是读操作。当该数据操作为写操作时,则服务层可以在第一租户标识对应的数据存储空间中写入目标数据,当该数据操作为读操作时,则服务层可以从第一租户标识对应的数据存储空间中读取目标数据,该目标数据是指该数据操作对应操作的数据,且为第一租户的数据。
另外,该数据操作对应的应用程序接口API可以通过元数据方式进行定义,即通过<key,value>的结构方式存储于第一租户标识对应的数据存储空间中,以减少系统直接访问数据库,提高数据的读写效率,提升系统整体性能。key和value可以称为参数名,key的参数值可以为租户标识,value的参数值可以为租户的数据,则<key,value>的结构方式可以如下表1所示。
表1
比如,第一租户标识为“huawei”,需要定义的应用程序接口API可以包括APIaddCache(String key,String value)和API queryCache(String key),则可以通过如下代码段定义“addCache”和“queryCache”。
具体的,服务层对第一租户标识对应的数据存储空间进行数据操作可以包括步骤S1-步骤S3,具体如下所述。
步骤S1:服务层确定该数据操作的操作类型。
其中,该数据操作的操作类型可以为读操作或者写操作,当服务层确定该数据操作请求为对第一租户标识对应的数据存储空间进行的数据操作时,服务层可以确定该数据操作的操作类型。若确定该操作类型为读操作,则执行步骤S2;若确定该操作类型为写操作,则执行步骤S3。
步骤S2:若该操作类型为读操作,则根据租户标识与数据存储空间之间的映射关系,确定第一租户标识对应的数据存储空间,从第一租户标识对应的数据存储空间中读取目标数据,并将该读操作的原数据修改为目标数据。
其中,租户标识与数据存储空间之间的映射关系用于指示租户与分配给租户的数据存储空间之间的对应关系,且租户标识与数据存储空间之间的映射关系可以通过文件的形式进行存储。比如,租户标识与数据存储空间之间的映射关系可以如下表2所示,每个租户标识对应的数据存储空间可以通过其对应的地址(Address)进行表示。当服务层确定该数据操作为读操作时,服务层可以根据第一租户标识从如下表2所示的租户标识与数据存储空间之间的映射关系中,获取与第一租户标识ID1对应的数据存储空间的地址为Add_1,从而从Add_1所指示的数据存储空间中读取目标数据。
表2
租户标识 | 数据存储空间的地址 |
ID1 | Add_1 |
ID2 | Add_2 |
…… | …… |
需要说明的是,上述表2所示的租户标识与数据存储空间之间的映射关系仅是示例的,并不对本申请实施例构成限定。
另外,读操作的原数据是指服务层在从第一租户标识对应的数据存储空间读取目标数据之前,从SaaS应用服务器的共享数据存储中读取的数据,因此,在服务层读取到目标数据之后,服务层将读取的原数据替换为目标数据。需要说明的是,本申请中提供的服务可以是通过非SaaS应用提供的SaaS服务,即对于用户而言,提供服务的应用是不区分租户的非SaaS应用,且不同租户的数据共同存储在共享数据存储空间中,数据操作也是在共享数据存储空间中读写数据。本申请在服务层读取到目标数据之后,通过将读取的原数据替换为目标数据,可以避免不同租户在共享数据存储空间中的数据发生干扰(比如租户A的数据会被租户B的数据替换)、或者数据被其他租户访问的情况,从而提高租户数据的安全性。
步骤S3:若该操作类型为写操作,则根据租户标识与数据存储空间之间的映射关系,确定第一租户标识对应的数据存储空间,并将写操作的目标数据写入第一租户对应的数据存储空间中。
比如,租户标识与数据存储空间之间的映射关系如上表2所示,当服务层确定该数据操作为写操作时,服务层可以根据第一租户标识从上述表2所示的租户标识与数据存储空间之间的映射关系中,获取与第一租户标识ID1对应的数据存储空间的地址为Add_1,从而将写操作的目标数据写入Add_1所指示的数据存储空间中。
其中,服务层对第一租户标识(huawei)对应的数据存储空间进行数据操作的代码段MultiteantPartitionInterceptor可以如下:
进一步的,当服务层根据步骤S2读取目标数据之后,服务层还可以将SaaS应用服务器的共享数据存储中的原数据进行删除,或者根据步骤S3写入目标数据之后,将SaaS应用服务器的共享数据存储中的目标数据进行删除,以节省SaaS应用服务器的存储空间。
在本申请实施例中,当业务控制层接收到租户客户端发送的包含第一租户标识的数据操作请求时,业务控制层将第一租户标识发送给服务层,从而避免了将第一租户标识作为API的一个参数进行传输,降低了应用的开发工作量、提高了开发效率,当服务层接收到第一租户标识时,服务层根据预设规则,确定该数据操作请求为对第一租户标识对应的数据存储空间进行的数据操作,并对该数据存储空间进行数据操作,从而在数据操作时是对每个租户标识对应的数据存储空间进行数据操作,实现了多租户数据在物理存储上的隔离,提高了多租户数据隔离的安全性。另外,本申请实施例在进行多租户数据隔离时无需修改提供SaaS服务应用的源代码,代码可读性高,同时也降低了维护成本。
进一步的,租户客户端还可以向SaaS应用服务器发送注册请求,以使SaaS应用服务器为其分配唯一的租户标识、以及分配与该租户标识对应的数据存储空间。具体的,参见图5,在步骤201之前,该方法还可以包括:步骤200a-步骤200d。
步骤200a:业务控制层接收租户客户端发送的注册请求,该注册请求携带第一租户的数据。
当第一租户需要使用SaaS应用服务器提供的SaaS服务时,第一租户可以通过租户客户端填写第一租户的数据,租户客户端可以向SaaS应用服务器发送携带第一租户的数据的注册请求,从而SaaS应用服务器的业务控制层可以接收到该注册请求。其中,第一租户的数据与第一租户使用的SaaS服务有关,比如,该SaaS服务可以是客户关系管理(CustomerRelationship Management,CRM),第一租户期望通过CRM购买办公用品,则第一租户的数据可以是公司名称、收货地址和联系电话等等。
步骤200b:业务控制层根据该注册请求,确定第一租户标识。
其中,当业务控制层接收到该注册请求时,业务控制层可以为第一租户分配第一租户标识,该第一租户标识用于唯一标识第一租户。比如,该第一租户标识可以为第一租户的名称、识别码等等,本申请实施例对此不做限定。
步骤200c:业务控制层为第一租户分配第一租户标识对应的数据存储空间,第一租户标识对应的数据存储空间用于存储第一租户的数据。
业务控制层可以为第一租户分配属于第一租户的数据存储空间,即分配第一租户标识对应的数据存储空间,该第一租户标识对应的数据存储空间用于单独存储第一租户的数据,从而在多个不同租户进行注册时,可以为多个不同租户中的每个租户分配其对应的数据存储空间,将多个不同租户的数据存储在不同的数据存储空间中,实现多个租户数据的完全隔离,保证了不同租户数据的安全性。
比如,若第一租户标识为a1,则业务控制层可以通过如下代码为第一租户分配数据存储空间:“Map a1Block=new HashMap<String,Object>();”。
步骤200d:业务控制层将第一租户标识与第一租户标识对应的数据存储空间,存储在租户标识与数据存储空间之间的映射关系中。
当业务控制层为第一租户分配对应的数据存储空间后,业务控制层可以将将第一租户标识与第一租户标识对应的数据存储空间,存储在租户标识与数据存储空间之间的映射关系中,以方便对第一租户的数据进行数据操作时,可以通过该租户标识与数据存储空间之间的映射关系,确定第一租户对应的数据存储空间,进而进行相应的数据操作。
比如,若第一租户标识为a1,则业务控制层可以通过如下代码将第一租户标识与第一租户标识对应的数据存储空间,存储在租户标识与数据存储空间之间的映射关系中:
Map tenantBlocks=new HashMap<String,Object>();//记录映射关系记录集
tenantBlocks.put(”a1”,a1Block);//存储a1及对应的数据存储空间的映射关系
在本申请实施例中,当业务控制层接收到租户客户端发送的注册请求时,业务控制层根据注册请求确定第一租户标识,并为第一租户分配与第一租户标识对应的数据存储空间,用于存储第一租户的数据,从而在多租户数据的物理存储上,实现多租户数据的安全隔离,提高了多租户数据隔离的安全性。
上述主要从各个网元之间交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,各个网元,例如租户客户端的设备和SaaS应用服务器等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的网元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对SaaS应用服务器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图6示出了上述实施例中所涉及的SaaS应用服务器的一种可能的结构示意图,该SaaS应用服务器300包括:控制单元301和服务单元302。其中,控制单元301用于执行图4的步骤201-步骤202,以及图5中步骤200a-步骤202;服务单元302用于执行图4或图5中的步骤203-步骤204。需要说明的是,控制单元301可以为上述图3所示的SaaS应用服务器中的注册单元、数据存储空间管理单元、租户标识识别单元和租户标识传输单元的集合单元;服务单元302可以为上述图3所示的SaaS应用服务器中的多租户区分点数据转存单元。上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在硬件实现上,上述控制单元301和服务单元302可以为处理器;该SaaS应用服务器还可以包括通信接口。
图7所示,为本申请实施例提供的上述实施例中所涉及的SaaS应用服务器310的一种可能的逻辑结构示意图。该SaaS应用服务器310包括:处理器312、通信接口313、存储器311以及总线314。处理器312、通信接口313以及存储器311通过总线314相互连接。在申请实施例中,处理器312用于对该SaaS应用服务器310的动作进行控制管理,例如,处理器312用于执行图4中的步骤201-步骤204、图5中的步骤200a-步骤204,和/或用于本文所描述的技术的其他过程。通信接口313用于支持该SaaS应用服务器310进行通信。存储器311,用于存储该SaaS应用服务器310的程序代码和数据。
其中,处理器312可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。总线314可以是外设部件互连标准(PeripheralComponent Interconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请的另一实施例中,还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当设备的至少一个处理器执行该计算机执行指令时,设备执行图4、或者图5所提供的多租户数据隔离方法。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备实施图4、或者图5所提供的多租户数据隔离方法。
在本申请的另一实施例中,还提供一种系统,该系统包括租户客户端和SaaS应用服务器;其中,SaaS应用服务器可以为上述图6或者图7所示的SaaS应用服务器。
在本申请实施例中,当业务控制层接收到租户客户端发送的包含第一租户标识的数据操作请求时,业务控制层将第一租户标识发送给服务层,从而避免了将第一租户标识作为API的一个参数进行传输,降低了应用的开发工作量、提高了开发效率,当服务层接收到第一租户标识时,服务层根据预设规则,确定该数据操作请求为对第一租户标识对应的数据存储空间进行的数据操作,并对该数据存储空间进行数据操作,从而在数据操作时是对每个租户标识对应的数据存储空间进行数据操作,实现了多租户数据在物理存储上的隔离,提高了多租户数据隔离的安全性。另外,本申请实施例在进行多租户数据隔离时无需修改提供SaaS服务应用的源代码,代码可读性高,同时也降低了维护成本。
最后应说明的是:以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (8)
1.一种多租户数据隔离方法,其特征在于,应用于软件即服务(SaaS)应用服务器,所述SaaS应用服务器包括业务控制层和服务层,所述方法包括:
所述业务控制层接收租户客户端发送的数据操作请求,所述数据操作请求包含第一租户标识;
所述业务控制层将所述第一租户标识发送给所述服务层;
所述服务层根据预设规则,确定所述数据操作请求为对所述第一租户标识对应的数据存储空间进行的数据操作;所述数据操作对应的应用程序接口API通过元数据方式进行定义;
所述服务层对所述第一租户标识对应的数据存储空间进行所述数据操作,包括:
确定所述数据操作的操作类型;
若所述操作类型为读操作,则根据租户标识与数据存储空间之间的映射关系,确定所述第一租户标识对应的数据存储空间,从所述第一租户标识对应的数据存储空间中读取目标数据,并将所述读操作的原数据修改为所述目标数据;
若所述操作类型为写操作,则根据租户标识与数据存储空间之间的映射关系,确定所述第一租户标识对应的数据存储空间,并将所述写操作的目标数据写入第一租户对应的数据存储空间中。
2.根据权利要求1所述的方法,其特征在于,所述预设规则包括需要区分租户的数据操作请求。
3.根据权利要求1或2所述的方法,其特征在于,所述业务控制层接收租户客户端发送的数据操作请求之前,所述方法还包括:
所述业务控制层接收所述租户客户端发送的注册请求,所述注册请求携带所述第一租户的数据;
所述业务控制层根据所述注册请求,确定所述第一租户标识;
所述业务控制层为所述第一租户分配所述第一租户标识对应的数据存储空间,所述第一租户标识对应的数据存储空间用于存储所述第一租户的数据;
所述业务控制层将所述第一租户标识与所述第一租户标识对应的数据存储空间,存储在租户标识与数据存储空间之间的映射关系中。
4.一种SaaS应用服务器,其特征在于,所述SaaS应用服务器包括:
控制单元,用于接收租户客户端发送的数据操作请求,所述数据操作请求包含第一租户标识;
所述控制单元,还用于将所述第一租户标识发送给服务单元;
所述服务单元,用于根据预设规则,确定所述数据操作请求为对所述第一租户标识对应的数据存储空间进行的数据操作;所述数据操作对应的应用程序接口API通过元数据方式进行定义;
所述服务单元,还用于对所述第一租户标识对应的数据存储空间进行所述数据操作,包括:确定所述数据操作的操作类型;
若所述操作类型为读操作,则根据租户标识与数据存储空间之间的映射关系,确定所述第一租户标识对应的数据存储空间,从所述第一租户标识对应的数据存储空间中读取目标数据,并将所述读操作的原数据修改为所述目标数据;
若所述操作类型为写操作,则根据租户标识与数据存储空间之间的映射关系,确定所述第一租户标识对应的数据存储空间,并将所述写操作的目标数据写入第一租户对应的数据存储空间中。
5.根据权利要求4所述的SaaS应用服务器,其特征在于,所述预设规则包括需要区分租户的数据操作请求。
6.根据权利要求4或5所述的SaaS应用服务器,其特征在于,所述控制单元,还用于:
接收所述租户客户端发送的注册请求,所述注册请求携带所述第一租户的数据;
根据所述注册请求,确定所述第一租户标识;
为所述第一租户分配所述第一租户标识对应的数据存储空间,所述第一租户标识对应的数据存储空间用于存储所述第一租户的数据;
将所述第一租户标识与所述第一租户标识对应的数据存储空间,存储在租户标识与数据存储空间之间的映射关系中。
7.一种SaaS应用服务器,其特征在于,所述SaaS应用服务器包括存储器、处理器、总线和通信接口,所述存储器中存储代码和数据,所述处理器与所述存储器通过总线连接,所述处理器运行所述存储器中的代码使得所述SaaS应用服务器执行上述权利要求1-3任一项所述的多租户数据隔离方法。
8.一种系统,其特征在于,所述系统包括租户客户端和SaaS应用服务器;其中,所述SaaS应用服务器为上述权利要求4-6任一项所提供的SaaS应用服务器。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710240807.6A CN108737325B (zh) | 2017-04-13 | 2017-04-13 | 一种多租户数据隔离方法、装置及系统 |
PCT/CN2018/078270 WO2018188437A1 (zh) | 2017-04-13 | 2018-03-07 | 一种多租户数据隔离方法、装置及系统 |
US16/598,606 US20200050608A1 (en) | 2017-04-13 | 2019-10-10 | Multi-tenant data isolation method, apparatus, and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710240807.6A CN108737325B (zh) | 2017-04-13 | 2017-04-13 | 一种多租户数据隔离方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108737325A CN108737325A (zh) | 2018-11-02 |
CN108737325B true CN108737325B (zh) | 2021-01-08 |
Family
ID=63792290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710240807.6A Active CN108737325B (zh) | 2017-04-13 | 2017-04-13 | 一种多租户数据隔离方法、装置及系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20200050608A1 (zh) |
CN (1) | CN108737325B (zh) |
WO (1) | WO2018188437A1 (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109412878A (zh) * | 2019-01-16 | 2019-03-01 | 紫光云数科技有限公司 | 多租户业务接入实现方法、装置及电子设备 |
CN110750568A (zh) * | 2019-09-29 | 2020-02-04 | 万翼科技有限公司 | 一种大数据平台的数据重组方法及系统 |
CN111522803B (zh) * | 2020-04-14 | 2023-05-19 | 北京仁科互动网络技术有限公司 | 软件服务化平台的租户交互方法、装置及电子设备 |
CN113536295A (zh) * | 2020-04-15 | 2021-10-22 | 支付宝实验室(新加坡)有限公司 | 小程序投放方法、计算机存储介质和计算机程序产品 |
CN111581216A (zh) * | 2020-05-09 | 2020-08-25 | 北京百度网讯科技有限公司 | 数据处理方法、装置、设备以及存储介质 |
CN111580998A (zh) * | 2020-06-12 | 2020-08-25 | 上海通联金融服务有限公司 | SaaS服务模式下多租户的RPC调用方法 |
CN111782300B (zh) * | 2020-07-08 | 2022-02-08 | 支付宝(杭州)信息技术有限公司 | 一种数据处理方法、装置、设备及系统 |
CN111865980B (zh) * | 2020-07-20 | 2022-08-12 | 北京百度网讯科技有限公司 | 信息存储中心的信息处理方法和装置 |
CN112000686A (zh) * | 2020-08-14 | 2020-11-27 | 北京金和网络股份有限公司 | 多租户数据共享的管理方法、装置和系统及数据管理设备 |
CN112035214B (zh) * | 2020-08-31 | 2023-03-24 | 北京白龙马云行科技有限公司 | 多租户隔离的司乘匹配方法和系统 |
CN112367408B (zh) * | 2021-01-13 | 2021-08-03 | 树根互联技术有限公司 | 一种物联网多租户数据的管理系统及方法 |
CN112765666A (zh) * | 2021-01-29 | 2021-05-07 | 树根互联股份有限公司 | 一种服务账户数据推送系统及方法 |
CN114978998B (zh) * | 2021-02-26 | 2023-12-12 | 中移(苏州)软件技术有限公司 | 一种流量控制方法、装置、终端及存储介质 |
CN113271334B (zh) * | 2021-03-25 | 2023-07-21 | 西藏宁算科技集团有限公司 | 基于SaaS场景下的业务策略分发方法、装置及电子设备 |
CN115150811A (zh) * | 2021-03-30 | 2022-10-04 | 华为技术有限公司 | 多租户运维管理方法、装置及系统 |
CN113419786A (zh) * | 2021-06-29 | 2021-09-21 | 未鲲(上海)科技服务有限公司 | 基于多租户技术的系统划分方法及相关装置 |
CN117836761A (zh) * | 2021-08-11 | 2024-04-05 | 上海诺基亚贝尔股份有限公司 | 管理数据隔离 |
CN113377784B (zh) * | 2021-08-13 | 2021-12-03 | 成都市维思凡科技有限公司 | 一种基于中间件的数据处理方法、系统和存储介质 |
US11716396B1 (en) * | 2021-08-27 | 2023-08-01 | Oracle International Corporation | System and method for providing unique identifiers for use with enterprise application environments |
CN113965383B (zh) * | 2021-10-21 | 2024-03-15 | 平安国际智慧城市科技股份有限公司 | 租户数据访问管理方法、装置、设备及存储介质 |
CN116361845A (zh) * | 2021-12-27 | 2023-06-30 | 华为技术有限公司 | 访问对象的鉴权方法、装置及系统 |
CN114765630B (zh) * | 2022-02-16 | 2024-04-26 | 杭州湖畔网络技术有限公司 | 多租户平台的数据访问方法、多租户平台及服务器 |
CN115208646B (zh) * | 2022-07-03 | 2024-03-26 | 上海妙一生物科技有限公司 | 一种SaaS应用权限管理方法及系统 |
CN115563117B (zh) * | 2022-10-14 | 2023-08-29 | 广州明动软件股份有限公司 | 一种基于SaaS技术的多租户管理应用及其实现方法 |
CN115842674B (zh) * | 2022-11-29 | 2023-09-26 | 武汉易久批信息技术有限公司 | 适用于云服务多租户隔离的方法及系统 |
CN115828288B (zh) * | 2023-01-28 | 2023-07-18 | 北京白龙马云行科技有限公司 | 多租户的司机管理方法、装置、计算机设备和存储介质 |
CN117389684A (zh) * | 2023-10-13 | 2024-01-12 | 河北云在信息技术服务有限公司 | 一种SaaS多租户数据隔离方法和系统 |
CN118504009B (zh) * | 2024-07-16 | 2024-09-13 | 北京蜂窝科技有限公司 | 一种基于多数据源的动态数据隔离方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102333115A (zh) * | 2011-09-01 | 2012-01-25 | 杭州湾云计算技术有限公司 | 一种将已有Web应用转化为SaaS多租户应用的方法和装置 |
US8819210B2 (en) * | 2011-12-06 | 2014-08-26 | Sap Portals Israel Ltd | Multi-tenant infrastructure |
CN104881749A (zh) * | 2015-06-01 | 2015-09-02 | 北京圆通慧达管理软件开发有限公司 | 面向多租户的数据管理方法和数据存储系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7383329B2 (en) * | 2001-02-13 | 2008-06-03 | Aventail, Llc | Distributed cache for state transfer operations |
US20040186832A1 (en) * | 2003-01-16 | 2004-09-23 | Jardin Cary A. | System and method for controlling processing in a distributed system |
JP4900807B2 (ja) * | 2007-03-06 | 2012-03-21 | 株式会社日立製作所 | ストレージシステム及びデータ管理方法 |
CN101996214B (zh) * | 2009-08-27 | 2013-10-23 | 国际商业机器公司 | 用于处理数据库操作请求的方法和装置 |
JP5128673B2 (ja) * | 2009-09-17 | 2013-01-23 | 株式会社三菱東京Ufj銀行 | アプリケーション開発支援装置、プログラム及び記録媒体 |
US9342353B2 (en) * | 2012-10-06 | 2016-05-17 | International Business Machines Corporation | Techniques for implementing information services with tenant specific service level agreements |
US20140222493A1 (en) * | 2013-02-04 | 2014-08-07 | Uni-B Solutions Llc | Process management system, method, and computer-readable medium |
US9411973B2 (en) * | 2013-05-02 | 2016-08-09 | International Business Machines Corporation | Secure isolation of tenant resources in a multi-tenant storage system using a security gateway |
US9898337B2 (en) * | 2015-03-27 | 2018-02-20 | International Business Machines Corporation | Dynamic workload deployment for data integration services |
US10452497B2 (en) * | 2015-08-14 | 2019-10-22 | Oracle International Corporation | Restoration of UI state in transactional systems |
-
2017
- 2017-04-13 CN CN201710240807.6A patent/CN108737325B/zh active Active
-
2018
- 2018-03-07 WO PCT/CN2018/078270 patent/WO2018188437A1/zh active Application Filing
-
2019
- 2019-10-10 US US16/598,606 patent/US20200050608A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102333115A (zh) * | 2011-09-01 | 2012-01-25 | 杭州湾云计算技术有限公司 | 一种将已有Web应用转化为SaaS多租户应用的方法和装置 |
US8819210B2 (en) * | 2011-12-06 | 2014-08-26 | Sap Portals Israel Ltd | Multi-tenant infrastructure |
CN104881749A (zh) * | 2015-06-01 | 2015-09-02 | 北京圆通慧达管理软件开发有限公司 | 面向多租户的数据管理方法和数据存储系统 |
Non-Patent Citations (1)
Title |
---|
SaaS 模式下多租户数据库的研究;何海棠 等;《郑州铁路职业技术学院学报》;20120920;第24卷(第3期);正文第1页左栏最后一段至第3页右栏第2段 * |
Also Published As
Publication number | Publication date |
---|---|
WO2018188437A1 (zh) | 2018-10-18 |
US20200050608A1 (en) | 2020-02-13 |
CN108737325A (zh) | 2018-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108737325B (zh) | 一种多租户数据隔离方法、装置及系统 | |
CN109325729B (zh) | 一种生成电子合同的方法及服务器 | |
US11620401B2 (en) | System and method for automatically securing sensitive data in public cloud using a serverless architecture | |
CN109639643B (zh) | 基于区块链的客户经理信息共享方法、电子装置及可读存储介质 | |
CN108287708B (zh) | 一种数据处理方法、装置、服务器及计算机可读存储介质 | |
US11086827B1 (en) | Dataset schema and metadata management service | |
CN112989313B (zh) | 一种标识注册方法、装置、电子设备及存储介质 | |
US10594804B2 (en) | Directory service discovery and/or learning | |
CN109597640B (zh) | 一种应用程序的账号管理方法、装置、设备和介质 | |
US11470068B2 (en) | System and methods for securely storing data for efficient access by cloud-based computing instances | |
US20180188990A1 (en) | Method, apparatus and system for inserting disk | |
CN113254969B (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
CN115859261A (zh) | 密码云服务方法、平台、设备及存储介质 | |
CN108520401B (zh) | 用户名单管理方法、装置、平台及存储介质 | |
CN114020689A (zh) | 数据处理方法、数据处理装置、电子设备及存储介质 | |
CN109391658B (zh) | 一种账号数据同步方法及其设备、存储介质、终端 | |
CN111200645B (zh) | 业务请求处理方法、装置、设备及可读存储介质 | |
CN111026613B (zh) | 日志处理方法及装置 | |
CN108241732B (zh) | 电子装置、信息处理的方法及存储介质 | |
CN111291045A (zh) | 服务隔离数据传输方法、装置、计算机设备及存储介质 | |
CN107679871B (zh) | 名单管理方法、装置、系统以及计算机可读存储介质 | |
CN116151631A (zh) | 一种业务决策处理系统、一种业务决策处理方法和装置 | |
US20230114321A1 (en) | Cloud Data Ingestion System | |
CN111585897B (zh) | 请求路由管理方法、系统、计算机系统及可读存储介质 | |
CN113986995A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |