一种多租户数据隔离方法、装置及系统制造方法及图纸

技术编号:19327618 阅读:57 留言:0更新日期:2018-11-03 14:30
本申请实施例提供一种多租户数据隔离方法、装置及系统,涉及通信技术领域,SaaS应用开发工作量大、效率低的问题,同时提高了多租户数据隔离的安全性。该方法应用于包括业务控制层和服务层的SaaS应用服务器,包括:所述业务控制层接收租户客户端发送的数据操作请求,所述数据操作请求包含第一租户标识;所述业务控制层将所述第一租户标识发送给所述服务层;所述服务层根据预设规则,确定所述数据操作请求为对所述第一租户标识对应的数据存储空间进行的数据操作;所述服务层对所述第一租户标识对应的数据存储空间进行所述数据操作。

A multi tenant data isolation method, device and system

The embodiment of this application provides a multi-tenant data isolation method, device and system, which relates to the field of communication technology. SaaS application development has the problems of large workload and low efficiency, and improves the security of multi-tenant data isolation. The method is applied to a SaaS application server including a business control layer and a service layer, including: the business control layer receives a data operation request sent by a tenant client, the data operation request contains a first tenant identity; the business control layer sends the first tenant identity to the service layer; and the service layer. According to the preset rules, it is determined that the data operation request is a data operation for the data storage space corresponding to the first tenant identification, and the service layer performs the data operation for the data storage space corresponding to the first tenant identification.

【技术实现步骤摘要】
一种多租户数据隔离方法、装置及系统
本申请涉及通信
,尤其涉及一种多租户数据隔离方法、装置及系统。
技术介绍
软件即服务(SoftwareasaService,SaaS)是一种软件应用模式,即通过互联网提供软件服务,租户按需租用,通常一个软件可以同时服务多个租户,通过降低多个租户中每个租户的成本,可以大大降低服务交付、运维成本,实现最大化收益。然而,在多租户模式下,由于软件堆栈是共享的,生成和使用的数据也是多租户共享,从而多租户之间的数据会相互干扰,进而导致业务错误的问题。因此,需要对多租户数据进行安全隔离。目前,在多租户模式下,对多租户数据进行安全隔离时,主要有以下两种方法:第一种、将租户标识添加到多租户应用的代码中,如图1所示,具体是将租户标识作为应用程序接口(ApplicationProgramInterface,API)的一个参数方式,从前端的用户界面(UserInterface,UI)到业务控制层、服务层,再到后端数据库(Database)访问API,逐层进行传输,每层API根据租户标识在API内部增加区分租户的代码,以实现租户之间数据的安全隔离。第二种、在多租户应用的代码中设置隔离点,并为每个租户生成私有的类加载器,在隔离点处通过每个租户对应的类加载器进行加载处理,以实现租户之间数据的安全隔离。上述第一种方法中,区分多租户的每个API都需要开发相应的代码,开发工作量大、效率低,且功能代码和非功能代码耦合在一起,增加维护成本。第二种方法中设置隔离点时需要修改多处源代码,效率低且代码可读性差,同时也增加了维护成本。
技术实现思路
本申请的实施例提供一种多租户数据隔离方法、装置及系统,解决了现有技术中SaaS应用开发工作量大、效率低的问题,同时提高了多租户数据隔离的安全性。为达到上述目的,本申请的实施例采用如下技术方案:第一方面,提供一种多租户数据隔离方法,应用于SaaS应用服务器,该SaaS应用服务器包括业务控制层和服务层,该方法包括:业务控制层接收租户客户端发送的数据操作请求,该数据操作请求包含第一租户标识;业务控制层将第一租户标识发送给服务层;服务层根据预设规则,确定数据操作请求为对第一租户标识对应的数据存储空间进行的数据操作;服务层对第一租户标识对应的数据存储空间进行数据操作。上述技术方案中,业务控制层将第一租户标识发送给服务层,从而避免了将第一租户标识作为API的一个参数进行传输,降低了应用的开发工作量、提高了开发效率,服务层根据预设规则,确定该数据操作请求为对第一租户标识对应的数据存储空间进行的数据操作,并对该数据存储空间进行数据操作,从而在数据操作时是对每个租户标识对应的数据存储空间进行数据操作,实现了多租户数据在物理存储上的隔离,提高了多租户数据隔离的安全性。结合第一方面,在第一方面的第一种可能的实现方式中,预设规则包括需要区分租户的数据操作请求。上述可能的实现方式中,服务层按照需要区分租户的数据操作请求,确定当前的数据操作请求是对第一租户标识是对应的数据存储空间进行数据操作,从而在该数据存储空间上进行相应的数据操作,实现多租户数据的安全隔离。结合第一方面或者第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,服务层对第一租户标识对应的数据存储空间进行数据操作,包括:确定该数据操作的操作类型;若该操作类型为读操作,则根据租户标识与数据存储空间之间的映射关系,确定第一租户标识对应的数据存储空间,从第一租户标识对应的数据存储空间中读取目标数据,并将读操作的原数据修改为目标数据;若该操作类型为写操作,则根据租户标识与数据存储空间之间的映射关系,确定第一租户标识对应的数据存储空间,并将写操作的目标数据写入第一租户对应的数据存储空间。上述可能的实现方式中,服务层确定数据操作的操作类型,并根据该操作类型为读操作或者写操作在第一租户标识对应的存储空间进行相应的数据操作,从而实现多租户数据的安全隔离,且保证数据操作的正确性。结合第一方面至第一方面的第二种可能的实现方式中的任一种可能的实现方式,在第一方面的第三种可能的实现方式中,该数据操作对应的应用程序接口API通过元数据方式进行定义。上述可能的实现方式中,通过元数据方式进行定义该数据操作对应的API,可以减少系统直接访问数据库的次数,提高数据的读写效率,提升系统的整体性能。结合第一方面至第一方面的第三种可能的实现方式中的任一种可能的实现方式,在第一方面的第四种可能的实现方式中,业务控制层接收租户客户端发送的数据操作请求之前,该方法还包括:业务控制层接收租户客户端发送的注册请求,注册请求携带第一租户的数据;业务控制层根据注册请求,确定第一租户标识;业务控制层为第一租户分配第一租户标识对应的数据存储空间,第一租户标识对应的数据存储空间用于存储第一租户的数据;业务控制层将第一租户标识与第一租户标识对应的数据存储空间,存储在租户标识与数据存储空间之间的映射关系中。上述可能的实现方式中,业务控制层在接收到租户客户端发送的注册请求时,根据注册请求确定租户标识,并为租户分配与其租户标识对应的数据存储空间用于存储该租户的数据,从而在多租户数据的物理存储上,实现多租户数据的安全隔离,提高了多租户数据隔离的安全性。第二方面,提供一种SaaS应用服务器,该SaaS应用服务器包括:控制单元,用于接收租户客户端发送的数据操作请求,该数据操作请求包含第一租户标识;控制单元,还用于将第一租户标识发送给服务单元;服务单元,用于根据预设规则,确定该数据操作请求为对第一租户标识对应的数据存储空间进行的数据操作;服务单元,还用于对第一租户标识对应的数据存储空间进行数据操作。结合第二方面,在第二方面的第一种可能的实现方式中,预设规则包括需要区分租户的数据操作请求。结合第二方面或者第二方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,服务单元具体用于:确定数据操作的操作类型;若操作类型为读操作,则根据租户标识与数据存储空间之间的映射关系,确定第一租户标识对应的数据存储空间,从第一租户标识对应的数据存储空间中读取目标数据,并将读操作的原数据修改为目标数据;若操作类型为写操作,则根据租户标识与数据存储空间之间的映射关系,确定第一租户标识对应的数据存储空间,并将写操作的目标数据写入第一租户对应的数据存储空间中。结合第二方面至第二方面的第二种可能的实现方式中的任一种可能的实现方式,在第二方面的第三种可能的实现方式中,该数据操作对应的应用程序接口API通过元数据方式进行定义。结合第二方面至第二方面的第三种可能的实现方式中的任一种可能的实现方式,在第二方面的第四种可能的实现方式中,控制单元还用于:接收租户客户端发送的注册请求,注册请求携带第一租户的数据;根据注册请求,确定第一租户标识;为第一租户分配第一租户标识对应的数据存储空间,第一租户标识对应的数据存储空间用于存储第一租户的数据;将第一租户标识与第一租户标识对应的数据存储空间,存储在租户标识与数据存储空间之间的映射关系中。第三方面,提供一种SaaS应用服务器,该SaaS应用服务器包括存储器、处理器、总线和通信接口,存储器中存储代码和数据,处理器与存储器通过总线连接,处理器运行存储器中的代码使得Saa本文档来自技高网...

【技术保护点】
1.一种多租户数据隔离方法,其特征在于,应用于软件即服务(SaaS)应用服务器,所述SaaS应用服务器包括业务控制层和服务层,所述方法包括:所述业务控制层接收租户客户端发送的数据操作请求,所述数据操作请求包含第一租户标识;所述业务控制层将所述第一租户标识发送给所述服务层;所述服务层根据预设规则,确定所述数据操作请求为对所述第一租户标识对应的数据存储空间进行的数据操作;所述服务层对所述第一租户标识对应的数据存储空间进行所述数据操作。

【技术特征摘要】
1.一种多租户数据隔离方法,其特征在于,应用于软件即服务(SaaS)应用服务器,所述SaaS应用服务器包括业务控制层和服务层,所述方法包括:所述业务控制层接收租户客户端发送的数据操作请求,所述数据操作请求包含第一租户标识;所述业务控制层将所述第一租户标识发送给所述服务层;所述服务层根据预设规则,确定所述数据操作请求为对所述第一租户标识对应的数据存储空间进行的数据操作;所述服务层对所述第一租户标识对应的数据存储空间进行所述数据操作。2.根据权利要求1所述的方法,其特征在于,所述预设规则包括需要区分租户的数据操作请求。3.根据权利要求1或2所述的方法,其特征在于,所述服务层对所述第一租户标识对应的数据存储空间进行所述数据操作,包括:确定所述数据操作的操作类型;若所述操作类型为读操作,则根据租户标识与数据存储空间之间的映射关系,确定所述第一租户标识对应的数据存储空间,从所述第一租户标识对应的数据存储空间中读取目标数据,并将所述读操作的原数据修改为所述目标数据;若所述操作类型为写操作,则根据租户标识与数据存储空间之间的映射关系,确定所述第一租户标识对应的数据存储空间,并将所述写操作的目标数据写入所述第一租户对应的数据存储空间中。4.根据权利要求1-3任一项所述的方法,其特征在于,所述数据操作对应的应用程序接口API通过元数据方式进行定义。5.根据权利要求1-4任一项所述的方法,其特征在于,所述业务控制层接收租户客户端发送的数据操作请求之前,所述方法还包括:所述业务控制层接收所述租户客户端发送的注册请求,所述注册请求携带所述第一租户的数据;所述业务控制层根据所述注册请求,确定所述第一租户标识;所述业务控制层为所述第一租户分配所述第一租户标识对应的数据存储空间,所述第一租户标识对应的数据存储空间用于存储所述第一租户的数据;所述业务控制层将所述第一租户标识与所述第一租户标识对应的数据存储空间,存储在租户标识与数据存储空间之间的映射关系中。6.一种SaaS应用服务器,其特征在于,所述SaaS应用服务器包括:控制单元,用于接收租户客户端发送的数据操作请求,所述数据操作请求包含第一租户...

【专利技术属性】
技术研发人员:赵清伟顾翀
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1