0

我试图找到我的问题的答案,但我还没有找到正确的答案(如果你指出我会很高兴)。在运行服务(网站、论坛、wiki、电子邮件)方面,我是个新手。我比较喜欢尝试。

我在一台服务器上托管了几个网站(主要是 wordpress)、邮件服务器、论坛、wiki 和文件共享(owncloud)。

直到现在,每次我安装新服务时,我都会创建新数据库(mysql),就像安装自述文件的建议一样。我想将一些服务连接在一起。主要是统一用户数据库。最好的方法是什么。对于我的服务器 cpu 负载来说,拥有多个数据库而不是一个 db 更重吗?它安全吗?管理起来容易吗?如果在拥有多个数据库时 cpu 负载没有问题,是否可以创建用户数据库并将其链接到我想链接到的服务数据库?

4

1 回答 1

0

让多个应用程序(论坛、wiki、...)访问同一个数据库不太可能对 CPU 使用率产生任何影响,但还有其他缺点:

  • 应用程序使用的表名可能有冲突(其中许多可能有“会话”或“帖子”表)。一些 Web 应用程序具有使用字符串作为表名前缀的功能,例如“wp_session”和“wp_posts”,以解决冲突。
  • 是的,它不太安全。当其中一个应用程序存在安全漏洞并且有人设法访问其数据库时,所有应用程序的数据都会受到损害。
  • 在进行应用程序升级、备份、删除或添加应用程序时,多个数据库可能更容易管理。
  • 不小心破坏了一个数据库,您将破坏所有应用程序。

要让应用程序使用相同的身份验证数据库,将它们指向同一个数据库通常是不够的,因为它们可能使用不同的数据库模式来存储用户信息(身份验证数据库中的不同列),不同的哈希存储密码, 等等。

这个问题非常广泛,具体的答案很大程度上取决于您使用的实际应用程序。一般来说,最好的方法可能是选择支持 OpenID 或 OAuth 等协议的应用程序,或支持 LDAP 数据库或 PAM(可插入身份验证模块)等身份验证后端的应用程序。这些方法允许您使用由单一方法管理的单一用户数据库。这些应用程序都需要使用相同的后端。无论如何,让它顺利运行可能是一个相当大的学习经历。

于 2013-07-01T19:17:48.970 回答