多个数据库用户与单个用户?

时间:2014-07-07 18:18:47

标签: database

在共享托管环境中,我在一个帐户下有多个网站。举个例子,假设我有5个wordpress(或joomla,drupal等)网站。每个网站都有一个单独的数据库,并且(到目前为止)每个网站都有一个单独的数据库用户。这些网站都在我的控制之下;没有客户,我需要担心将事情分开。当我准备添加一个额外的站点时,我开始认为拥有一个可以访问多个db而不是单个数据库用户的共享数据库用户会很方便。

为每个数据库支持的站点提供单独的数据库用户与拥有可以访问所有站点数据库的单个数据库用户的优缺点是什么?有最好的做法吗?

2 个答案:

答案 0 :(得分:2)

我会将它们分开(每个数据库一个用户)。

如果您的任何网站存在漏洞(人们每天都会发现漏洞),则有人可能会利用漏洞通过受感染的用户访问您的数据库引擎。如果用户被限制在一个数据库中,那么至少其他站点不会受到损害。

如果您使用单个用户,那么通过该用户获取访问权限会使每个数据库(以及每个站点)处于危险之中。

答案 1 :(得分:0)

这取决于您拥有的网站类型。如果您的网站支持某种商业智能,那么您的数据库应该是独立的,以便特定用户只能访问特定用户以获得BI支持将是一个好主意。

如果您的网站像某个商业或社区网站一样简单,那么您的数据库可以是所有用户的数据库。

好吧现在问题来自不同网站的不同数据库。

为不同的网站制作一个数据库并不是一个好主意,因为使用不同的编程语言访问数据库会对处理速度产生很大的影响。像Python是一种很好的编程语言,但JAVA比Python快很多倍。所以这应该记住。另外一件事资源共享可能会产生问题,因为一个站点的用户对某些数据进行了更改,同时来自另一个网站的其他用户使用该数据,然后不同的事务将改变所需的数据和许多这样的问题

所以更好的选择是为单独的网站建立单独的数据库。如果用户在特定数据上执行某种工作,则只为他/她所需的特定用户单独访问该数据,因此在这种情况下您可以创建单独的表或数据库。单独数据库的其他好处是您可以使用多个进程或线程执行并行数据加载。这使得数据库访问速度非常快。就像使用10个线程可以快速访问10个文件中10 GB的数据一样。您可以使用一个线程从一个文件中访问10 GB的数据。 :) 另一个好处是,通过同时应用不同的事务,您的资源不会那么容易地改变,因为单独的数据库的概率会降低。 祝你好运。

相关问题