为 Windows 服务存储用户名和密码的最佳方式是什么?
该服务必须能够访问远程计算机上的 MS SQL Server 数据库。我们必须支持 MS SQL Server 身份验证(混合模式)而不是 NT 身份验证。
为 Windows 服务存储用户名和密码的最佳方式是什么?
该服务必须能够访问远程计算机上的 MS SQL Server 数据库。我们必须支持 MS SQL Server 身份验证(混合模式)而不是 NT 身份验证。
假设 .Net,您可以加密您的配置文件。看到这个。
DP API是在 Windows 上本地存储敏感数据的标准方式。您没有提到您正在使用的编程语言,但在 .NET 中,这是从System.Security.ProtectedData类公开的。
虽然我同意,理想情况下,您不需要存储此密码,但如果您这样做,则无需自己对其进行哈希处理。加密保护数据。阅读本文底部的警告。不过,我实际上使用LsaStorePrivateData来存储密码。
没有真正安全的方法来存储您的 Windows 服务的用户名和密码,因此为您用于访问 SQL Server 的帐户提供执行所需操作所需的最低限度的数据库权限非常重要。
编辑:我并不是说您仍然不应该加密用户名和密码 - 您应该使用其他答案中提到的工具之一。
这取决于您的环境。
该服务是否在不安全的机器上运行?
我们的服务在我们的服务器机房内的服务器上的防火墙内运行,只有管理员才能访问。
我们将此类信息部署到配置文件中,因为我们使用 NT 身份验证直接限制对这些文件的访问。但在这种情况下,运行服务的机器只是一台服务器,而不是用户机器。
感谢到目前为止的答案:)
最好的方法似乎是使用使用以下类加密用户名和密码的配置文件:System.Security.Cryptography.ProtectedData
这里有一个很好的背景解释:Windows Data Protection