【问题标题】:Multitenant application - access for users who do not belong to a specific tenat eg: Customers多租户应用程序 - 访问不属于特定租户的用户,例如:客户
【发布时间】:2013-06-05 23:17:52
【问题描述】:

我正在使用 ruby​​ on rails 开发一个多租户项目管理应用程序,但对于为可能不属于特定租户的用户实施访问权限感到有些困惑。

例如,我们有用户 Bob 和 Martha,他们属于租户 A - 或者还有另外两个用户 Jim 和 Jill,他们属于租户 B。现在我们有一个名为 Mark 的客户,他是两个租户的客户.两个租户都有项目,我需要为客户构建一个可访问的表单,以便客户可以登录并查看他的项目。问题是我不希望而且显然没有客户希望这里的每个租户单独登录。我对自己在这里编写租户管理代码很感兴趣,但是我对如何实现这一点有点困惑。

我正在实施基于行的租赁,即每个模型都会在此处引用租户模型,并且登录用户可以编辑和添加属于其租户的任何内容。但是,对于可能需要访问多个租户的客户或顾问用户的可能案例 - 我如何在此处设置结构。

理想情况下,客户希望能够登录并查看租户/公司不同的所有项目的列表。我该如何设置这个结构?此外,我想保持这种开放式的状态,以便来自 TenantB 的用户也可能是 TenantA 的客户。

【问题讨论】:

    标签: ruby-on-rails multi-tenant


    【解决方案1】:

    问题是我不希望而且显然没有客户希望这里的每个租户单独登录。

    他们确实想要这个,主要是出于法律、审计或安全原因。

    多租户正是数据的分离。因此,在登录期间或之后您选择租户。之后,您只能看到该租户的确切数据。以后没有突破:可以切换到另一个租户,但不能合并不同租户的数据。

    如果这不是您想要的,请考虑重新设计您的数据模型:项目和人员之间可能存在分配。通过在项目中使用外键链接回客户,客户可以拥有自己的项目。这种数据模型方法不同于使用多租户方法,后者实际上是一种在行或实例级别分离数据的技术手段。

    【讨论】:

    • 嗯,这实际上是有道理的,因为目前的租赁模型似乎是一个过多的开销。我注意到甚至 basecamp 似乎已经透明地远离了基于子域的租户模型——或者我假设。我会按照你所说的去制定不同的模型设计 - 谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-10
    • 2018-01-09
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    相关资源
    最近更新 更多