如何处理用户对可以访问多个数据库的应用程序的访问权限

时间:2011-11-03 03:10:19

标签: php mysql login

我正在考虑采用一种现有的php和mysql应用程序,这种应用程序是为内部使用而开发的(因此有一个单独的数据库,没有任何内置的多租户)。

我认为有可能以某种方式更好地运行自己数据库的每个客户端。我想知道的是,如果提供的凭据可以在任何一个数据库中,在某些情况下可能是多个数据库,如何最好地处理用户的登录。

我曾想过迭代每个数据库并检查有效凭据。如果凭证以倍数存在,则返回用户选择的列表,或者仅存在一次然后登录。

这是一个有效的解决方案吗?如果应用程序扩展为在数百个数据库中拥有数千名用户,它是否会开始表现不佳?

1 个答案:

答案 0 :(得分:0)

我建议为每个客户端安装一个不同的应用程序实例,并使用自己的数据库。

每个客户端都应该拥有自己的URL来访问应用程序,而不是让他们从1个位置访问所有客户端,而是指向多个数据库。

如果您从一个位置(多个数据库)运行所有客户端,这将解决您可能遇到的一些问题

  1. 如果不同的客户端具有相同名称的帐户,会发生什么?哪个帐户优先?
  2. 如果客户希望接管应用并将其与其他客户分开托管,会发生什么情况。你怎么能轻易地将这个客户分成一个单独的安装?
  3. 需要注意的另一点是,连接和断开数据库是很昂贵的。如果在用户登录时必须这样做100次,以找出该用户所在的数据库。这可能会使系统或数据库服务器失效。