【问题标题】:Saas model data isolationSaaS模型数据隔离
【发布时间】:2011-07-02 07:13:34
【问题描述】:

我目前有一个使用 symfony 框架用 php 编写的应用程序。我不想在托管服务器上为客户单独安装,而是转为 SaaS 模型,为所有可能运行谷歌代码或其他基于云的服务的客户安装一个。虽然我想拥有一个好的框架的好处,但我并不依赖于 PHP。

因此挑战:如果所有客户都使用同一个应用程序,那么我们就有办法隔离每个客户的数据。例如,客户拥有管理员访问权限,并且可以管理他们自己的用户和权限。在一个简单的层面上,您可以在每个表中都有一个组织标识符,并将其添加到所有数据库操作中。然而,大多数应用程序框架都使用某种类型的 ORM,我还没有找到一个可以轻松/轻松地解决这一问题的框架,并且对应用程序代码的影响最小。

有没有人看过这个,有什么好的方法来解决这个问题吗?

【问题讨论】:

    标签: security orm frameworks cloud saas


    【解决方案1】:

    正如 Itay 所说,multi-tenant system 是一种常见要求。不久前,我对这个问题进行了一些研究,发现了一个关于处理这个问题的不同方法以及每种方法的优缺点的非常好的演示文稿:http://aac2009.confreaks.com/06-feb-2009-14-30-writing-multi-tenant-applications-in-rails-guy-naor.html

    此特定演示文稿针对的是 Rails 观众,但原则与任何语言相同。

    【讨论】:

    • 我认为actasconference链接现在已经断开或关闭
    • 感谢您的提醒 - 找到了同一谈话的有效链接。
    【解决方案2】:

    您描述的方法很常见,PHP(优势之一)将允许您相对轻松地进入 ORM 代码并根据需要对其进行修改。

    第二种方法是为每个组织创建一个单独的数据库,并为共享资源创建一个联合数据库。
    有点设计挑战(但只是一点点)。

    如果你真的很大,那么你甚至需要为每个组织考虑一个单独的数据库服务器(我会说这在 99.99999% 的情况下是一个严重的矫枉过正)。

    【讨论】:

      【解决方案3】:

      这篇 MSDN 文章很好地概述了多租户中的数据架构:http://msdn.microsoft.com/en-us/library/aa479086.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-26
        • 1970-01-01
        相关资源
        最近更新 更多