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都需要开发相应的代码,开发工作量大、效率低,且功能代码和非功能代码耦合在一起,增加维护成本。第二种方法中设置隔离点时需要修改多处源代码,效率低且代码可读性差,同时也增加了维护成本。
技术实现思路
本申请的实施例提 ...
【技术保护点】
1.一种多租户数据隔离方法,其特征在于,应用于软件即服务(SaaS)应用服务器,所述SaaS应用服务器包括业务控制层和服务层,所述方法包括:所述业务控制层接收租户客户端发送的数据操作请求,所述数据操作请求包含第一租户标识;所述业务控制层将所述第一租户标识发送给所述服务层;所述服务层根据预设规则,确定所述数据操作请求为对所述第一租户标识对应的数据存储空间进行的数据操作;所述服务层对所述第一租户标识对应的数据存储空间进行所述数据操作。
【技术特征摘要】
1.一种多租户数据隔离方法,其特征在于,应用于软件即服务(SaaS)应用服务器,所述SaaS应用服务器包括业务控制层和服务层,所述方法包括:所述业务控制层接收租户客户端发送的数据操作请求,所述数据操作请求包含第一租户标识;所述业务控制层将所述第一租户标识发送给所述服务层;所述服务层根据预设规则,确定所述数据操作请求为对所述第一租户标识对应的数据存储空间进行的数据操作;所述服务层对所述第一租户标识对应的数据存储空间进行所述数据操作。2.根据权利要求1所述的方法,其特征在于,所述预设规则包括需要区分租户的数据操作请求。3.根据权利要求1或2所述的方法,其特征在于,所述服务层对所述第一租户标识对应的数据存储空间进行所述数据操作,包括:确定所述数据操作的操作类型;若所述操作类型为读操作,则根据租户标识与数据存储空间之间的映射关系,确定所述第一租户标识对应的数据存储空间,从所述第一租户标识对应的数据存储空间中读取目标数据,并将所述读操作的原数据修改为所述目标数据;若所述操作类型为写操作,则根据租户标识与数据存储空间之间的映射关系,确定所述第一租户标识对应的数据存储空间,并将所述写操作的目标数据写入所述第一租户对应的数据存储空间中。4.根据权利要求1-3任一项所述的方法,其特征在于,所述数据操作对应的应用程序接口API通过元数据方式进行定义。5.根据权利要求1-4任一项所述的方法,其特征在于,所述业务控制层接收租户客户端发送的数据操作请求之前,所述方法还包括:所述业务控制层接收所述租户客户端发送的注册请求,所述注册请求携带所述第一租户的数据;所述业务控制层根据所述注册请求,确定所述第一租户标识;所述业务控制层为所述第一租户分配所述第一租户标识对应的数据存储空间,所述第一租户标识对应的数据存储空间用于存储所述第一租户的数据;所述业务控制层将所述第一租户标识与所述第一租户标识对应的数据存储空间,存储在租户标识与数据存储空间之间的映射关系中。6.一种SaaS应用服务器,其特征在于,所述SaaS应用服务器包括:控制单元,用于接收租户客户端发送的数据操作请求,所述数据操作请求包含第一租户...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。