在哪里放置我的数据库

时间:2010-01-18 07:58:50

标签: database security encryption cryptography database-connection

目前我正忙着实施一个网站,数据库和软件来填充这个数据库。该网站位于外部托管公司,该软件在本地netwerk运行。网站需要读取数据库中的信息,本地软件会将其结果(这些数据)放入数据库中。

问题:我将把数据库放在哪里?考虑到安全性和性能,最好的地方是什么。还有什么可能性:如果我将数据库与我的网站一起放在网络服务器上,我可以从我的本地软件上载它吗?如果我把数据库放在本地,我可以从我的网站访问它吗?

我是程序员,了解编程软件和实现数据库,但对基础设施知之甚少,所以可以请别人给我一些建议。

提前致谢, 忒

4 个答案:

答案 0 :(得分:1)

这是一个很好的问题。

从性能角度来看,我会针对网络服务器完成的读取进行优化。按比例,Web服务器将发送更多查询,如果数据库速度慢,页面将加载缓慢。

从安全的角度来看,连接到远程数据库可能是危险的。但是,如果采取适当的预防措施,例如使用SSL key-pair进行身份验证。还要确保数据库上的所有用户帐户只能从您信任的IP地址使用。

还有另一项安全数据库放置的预防措施。当您的Web服务器和数据库位于同一台计算机上时,黑客可以使用许多攻击。最好的例子是Hackproofing Mysql中描述的into outfile攻击。如果数据库无法放在自己的机器上,则可以使用chroot或虚拟机。

答案 1 :(得分:0)

这两个地方?通过设置单向复制方案,您可以保证始终拥有数据的本地副本,但不会妨碍远程站点的性能。

复制可以由您的数据库或您的应用程序管理。

答案 2 :(得分:0)

为了稳定性和性能,您应该部署最接近生产系统的数据库,在这种情况下,您的网站就是您的网站。假设您具有良好的安全性和带宽,后端软件应该能够通过TCP访问托管服务器。这意味着最好使用所谓的point-to-point连接。另一种方法是在互联网上建立一个vpn,这可能很慢且不可靠。

编辑:通过“制作”,我指的是面向客户和关键任务,这可能与您的情况不符。谁是两个系统的受众?哪个更稳定更重要?

通过使用点对点或vpn,您可以假装您正在通过LAN访问计算机。然而,速度取决于你每月花多少钱。

答案 3 :(得分:0)

您询问稳定性和性能,但一如既往这是一个权衡问题,因此您必须决定哪些更重要 - 网站或软件。

我认为网站是(认为这就是你将信息上传到数据库的原因),从这个角度来看,将数据库放在你的网站旁边(托管公司,其中大部分都提供这项服务)。

这样可以让您的网站更快地访问数据,从而提高系统的稳定性(减少超时的可能性)

您支付的价格当然是软件,现在必须远程连接到数据库。

另一个考虑因素是数据量 - 例如,如果您希望软件大量使用数据库而网站只是谨慎使用,您可以考虑更改方法。

最后 - 关于远程访问数据库 - 您当然可以考虑简单地“正常”连接到数据库,但如果可能的话,我可能会考虑将其包装在Web服务中,这样就可以了

  1. 使数据库的位置和实施具有更大的灵活性
  2. 使用广泛传播的协议(如WS- *),您可以实现更高的安全性,而无需VPN等基础设施
  3. 再次 - 根据远程访问数据库的哪个部分,您可以选择将哪一方作为服务公开。这当然可能不太适合大量上传数据。