【问题标题】:How to have a multi tenant database in laravel where every tenant has multiple users?如何在laravel中拥有一个每个租户都有多个用户的多租户数据库?
【发布时间】:2015-09-30 11:29:13
【问题描述】:

所以我试图了解多租户数据库方法的工作原理,但我在某些地方感到困惑。我正在尝试在 Laravel 和 MySQL 中使用它

我知道我可以在我的应用程序中为每个租户都有一个数据库,因此当用户登录时,我可以检查它是哪个租户并更改数据库连接以使用他们的数据库。我猜这就是它的工作原理。

但现在我开始感到困惑。登录到应用程序的租户将能够创建用户并为他们分配角色,这意味着有一个超级管理员可以创建所有租户,但是还有一个特定租户的超级管理员将为实例创建用户租户本身。

那么现在我将如何在这种情况下对用户进行身份验证。例如,我可以对租户进行身份验证,然后将数据库连接更改为适当的数据库,但随后我必须登录该特定租户的用户,我将如何让两个实体在会话中同时登录?

我猜想一个多身份验证包(如Multi Auth)可能有助于做到这一点,但由于我是新手,所以我大多是模糊的。

我希望有人已经遇到过这个问题,也许可以帮助我。

【问题讨论】:

    标签: php mysql laravel multi-tenant laravel-5.1


    【解决方案1】:

    首先,我假设您有充分的理由拥有多个数据库,而不是仅仅允许所有用户生活在同一个表中。这通常是因为您有一个数据量特别大的应用程序、安全情况,或者您只是希望能够在 CRM 等应用程序中轻松分离出客户数据。

    其次,如果我要使用多个数据库,我仍然会依赖 Laravel 来控制对数据库的访问。 Laravel 将在其所有查询中使用管理级别的凭据,但在您的应用程序中,您将使用 Laravel 的 Auth 层来控制对特定路由和操作的访问。

    【讨论】:

      猜你喜欢
      • 2017-09-16
      • 1970-01-01
      • 2020-08-03
      • 2013-01-09
      • 1970-01-01
      • 1970-01-01
      • 2014-11-01
      • 1970-01-01
      • 2013-11-23
      相关资源
      最近更新 更多