saas数据库

 随着网络技术的发展和应用软件的成熟,软件即服务(Software-as-a-service。简称SaaS)已经成为一种新型的软件运营模式。针对SaaS运营模式的特点,在SaaS系统开发时需要考虑多租户、共享、安全性等方面的需求。其中,系统数据层的共享和安全性是影响SaaS推广的关键因素。在传统的信息系统中,只需要满足独立客户的特定数据需求,所以系统可以针对不同客户的需求采用不同的数据库方案,以保证数据正确性、高效性和安全性。在SaaS应用环境中,需要面对来自不同租户的海量数据,面临着如何来保证租户数据隔离,满足租户不同的数据结构自定义等更为复杂的问题。因此,需要思考如何创建合理的数据层架构,使其在多租户的条件下既能保证租户之间的数据隔离,又可以使租户之间最大程度的共享数据结构,以实现SaaS系统高效、安全的运行。

1 数据层架构方案

    由于SaaS应用的实现技术以及市场环境的变化,SaaS系统的数据层架构在隔离的程度上会有很大差异。共享数据和隔离数据之间并不是完全对立的,数据层架构在完全隔离到完全共享的两个极端之间具有一定的连续性。对于服务于多个租户的SaaS应用而言,应该能够以较低的成本保证每个租户都可以正确的使用自己的数据。下面将针对如何处理租户之间的数据隔离和数据共享问题对不同的数据层设计方案进行分析与比较。

1.1独立数据库

    独立数据库方案,即每个客户拥有一个独立的数据库,而多个数据库可以允许在一个或多个数据库服务器中,如图1所示。在彼此独立的数据库中存储客户数据是数据隔离最简单的方法。这种方案的数据隔离级别最高,安全性最好,但是成本也最高。


    为不同客户提供独立的数据库有助于简化应用中数据模型的扩展,以满足不同客户的个性需求,而且在发生故障后,数据恢复处理也相对简单。但是这种方法会增加设备维护和客户数据备份的成本,硬件成本也较高。因为每个数据库服务器上能够支持的数据库数量有限,独立数据库的方案使得客户彼此之间不能进行资源共享,这便限制了每个数据库服务器可以容纳的客户数量。这种方案仅适用于那些愿意支付高额代价来换取更高安全性和可定制性的客户。考虑到SaaS产品的成本和市场的竞争,由于独立数据库的方案可以支撑的租户数有限,所以这种方案难以充分发挥SaaS应用的优势。

1.2独立数据架构

    在独立数据架构方案中,租户共享数据库,但是每个租户拥有自己独立的架构(Schema)。每个租户拥有自己专门的表、视图等数据对象集合,形成租户自己的独立架构(如图2)。
 


    当租户最初成为这类服务的客户时,相关配置子系统会为客户创建属于该客户自己的表集,并将其与客户自己的架构相关联。例如,在Oracle中Schema一般是与user对应的,创建一个Schema一般通过创建客户的方法实现,默认情况下客户名即为Schema名,如下:

    create user TenantA identified by Pwddefault tablespace edu-tbspacetemporary tablespace edu-tempprofile edu-user;
    grant connection,resource to TenantA…;

    由此,数据库生成名为TenantA的Schama,且能使用SchemaName.TableName访问该客户的数据集。

    与独立数据库方案相比,独立架构的设计方案也相对容易实施。这种方法为要求高安全性的客户提供了一定程度的逻辑数据隔离,但是由于客户之间是共享数据库的,所以并没有实现客户数据之间的完全隔离。这种方案相比独立数据库方案每个数据库服务器能够支持更多的客户数量,可以节约服务器资源和硬件成本。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值