2

假设我有一个像 CMS 之类的 PHP Web 应用程序,并且每个新用户在服务器上都有自己的托管区域 - 他们应该都有自己的 mySQL 用户名和密码以及与他们的帐户绑定的站点数据的数据库,或者更确切地说一个 mySQL 用户/通行证,Web 应用程序使用该用户与该帐户上具有数据库的所有用户连接?

如果您获得大量用户(60-100+),这是否存在任何性能问题?

例如,例如这样的数据库结构:

(prefix) host_
              userDB1
              userDB2
              userDB3
              ...
etc.

每个应用程序使用一个 mysql 帐户连接到各自的数据库并从表中提取数据?

或者每个用户数据库(其中可能有很多表)是否应该在他们自己的主机区域下,每个用户都有一个单独的 mysql 帐户?

我希望这是有道理的。我一直在环顾四周并阅读了很多资料,试图找到构建最终需要处理大量用户的数据库的最佳方法。

4

3 回答 3

4

根据您关于所有数据库访问都是通过应用程序的声明,我不明白为什么您希望为每个客户端拥有单独的用户,因为最终您的应用程序将需要构建以处理用户权限。

现在,您是否选择使用单独的数据库实际上是您需要做出的设计决策,并且可能取决于您在应用程序中需要多少数据分离、应用程序数据管理流程(即执行数据库备份)、是否需要每个用户的自定义模式,是否需要能够轻松地跨用户聚合数据等。

于 2013-03-14T19:58:14.527 回答
1

有趣的问题。你看,如果我们考虑一下linux,我们就会得到你“管理”问题的答案。

例如,对于每个服务,您可能在 linux 服务器上拥有不同的用户,因此如果一个用户受到威胁,那么只有一个服务也会受到影响。您可以只担心一个问题而不是多个问题。

我还建立了一个 CRM,几年前就有这个疑问。我对每个数据库使用一个用户名和密码,并且(只是为了确保它真的安全),每个数据库都有一个允许进行更改的用户,另一个只使用“select”语句。

我这样做也是因为我喜欢检查正在使用 mysql 的用户,有时知道请求来自哪里并密切关注它是有用的。

您的 CRM 有安装程序,对吗?您可以轻松地创建数据库、用户并添加到数据库中。所以这很容易,不会占用您的时间。

于 2017-10-24T02:12:14.317 回答
0

我希望每次吊装都有一个帐户。并将用户的写权限限制在他的数据库中。

于 2013-03-14T18:16:35.670 回答