因此,我们的Web服务器应用程序需要连接到数据库,而其他一些应用程序具有在启动时执行的启动脚本.
根据这些应用程序存储这些应用程序的名称/密码的最佳方法是什么?
安全性,例如,我们可能不希望系统管理员知道数据库密码
可维护性,例如在密码更改时使配置易于更改等.
Windows和Linux解决方案都很受欢迎!
保护密码的最佳方法是停止使用密码.使用可信连接: 如何:使用ASP.NET 2.0中的Windows身份验证连接到SQL Server.然后你没有什么可隐藏的 - 将你的web.config和source发布到这个世界,他们仍然无法访问你的数据库.
如果这对您不起作用,请使用ASP.NET中的内置配置加密系统.
PostgreSQL为他们的文档中的这种情况提供了一个很好的解决方案.实质上,您使用ssh将计算机上的端口桥接到远程计算机上的PostgreSQL服务器端口.这有三个阶段的身份验证:
限制对本地端口的访问,例如仅允许特定用户连接到该端口.
使用ssh作为特定用户设置与PostgreSQL主机的无密码连接.
允许用户ssh连接,以便在没有密码的情况下对PostgreSQL进行本地访问.
这降低了您的用户帐户是否受到保护并且您的ssh配置是否合理的安全性,并且您无需在任何地方存储密码.
编辑:我应该补充一点,这将适用于任何侦听TCP/IP端口的数据库.它恰好在PostgreSQL中描述.并且您将需要iptables(或等效的Linux)来执行端口限制.看到这个.