所有数据库或多个MySQL帐户的一个用户名?

时间:2013-03-14 16:53:36

标签: php mysql web-applications database-design

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

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

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

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

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

或者每个用户db(可能有多少个表)都在他们自己的主机区域下,每个用户都有一个单独的mysql帐户?

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

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

有趣的问题。你知道,如果我们考虑一下linux,我们就能得到你的管理层的答案。问题

例如,对于每个服务,您可能在Linux服务器上拥有不同的用户,因此如果一个用户受到了损害,那么也只有一个服务。你可以简单地担心一个问题而不是多个问题。

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

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

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

答案 2 :(得分:0)

我更喜欢每个吊装的帐户。并且仅将用户的写入权限限制为他的DB。