2013-03-14 50 views
1

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

是否有任何性能问题,这一点,如果你获得了很多用户(60-100 +)的?

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

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

,并且每个应用程序用于连接到它们各自的数据库,并从它们的表中提取数据的MySQL一个帐户?

还是应该每个用户数据库(其中可能有好多个表中的)是他们自己的主机区下有独立的MySQL账户为每个?

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

+0

这些用户是否有资格在数据库中查找? – Supplement 2013-03-14 16:56:10

+1

用户是直接访问数据库的,还是他们对通过应用程序提供的数据的唯一看法? – 2013-03-14 16:58:40

+1

为什么1个用户想要连接到所有数据库?由于安全原因,最好为1个用户提供对1个数据库的全部访问权限。用户是否可以访问mysql登录或通过脚本访问。 – 2013-03-14 17:07:37

回答

3

根据您的说法,所有的数据库访问是通过应用程序,我不明白你为什么会想为每个客户端的独立用户,因为最终你的应用程序将需要建立反正来处理用户的权限。

现在,无论您是否选择使用单独的数据库,都是您需要做出的设计决策,并且很可能取决于您在应用程序,应用程序数据管理流程(例如,执行数据库备份)中需要多少分离数据,无论您需要定制模式为每一个用户,你是否需要跨用户能够轻松地汇总数据等

+0

我明白你的意思了,最初我就是这么想的。我只是想确保它不会影响从数据库加载时间等方面的性能,如果它全部来自一个用户或某个用户​​,与单独的用户相比。但如果它纯粹只是一个设计决策的案例,那就没有问题。 – MrLewk 2013-03-15 11:20:23

+1

@MrLewk如果任何具有多个用户名的东西在高并发情况下对您来说可能会更成问题,因为这可能会导致您保持打开更多与数据库的连接,而不需要使用单个用户帐户。 – 2013-03-15 15:47:27

+0

好的,谢谢你的帮助。所以就其他人所说的安全性而言,最好的方法是什么?目前,用户只是基本的权限更新,插入等应用程序需要。有更多可以做的吗? – MrLewk 2013-03-16 11:10:50

0

我宁愿为每个吊装帐户。并限制用户的写入权限仅限于他的数据库。

+0

但是,无论哪种方式会给出任何性能问题/好处?我的意思是,他们的网站或其他什么,加载速度更快,如果只是他们的数据库帐户,而不是每个人的数据库在一个帐户下? – MrLewk 2013-03-14 19:27:02

+1

这里没有性能差异。其关于更安全的数据。 – georgecj11 2013-03-15 16:02:21

1

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

例如,每个服务可能有一个Linux服务器上的其他用户,因此,如果一个用户那里得到的compromissed,只有一个服务的意志为好。您只需担心一个问题而不是多个问题。

我还建立了一个CRM,并在几年前就有这种怀疑。我为每个数据库使用一个用户名和密码,并且(为了确保它非常安全),每个数据库都有一个用户可以进行更改,另一个用户只能使用“select”语句。

我做这样也是因为我想检查正在使用MySQL用户的,有时是有用知道哪来的请求的从正在添加,并保持它的眼睛。

你的CRM有一个安装程序,对吧?您可以轻松创建数据库,用户并添加到数据库中。所以这很容易,而且不会花费你的时间。

相关问题