我们有一个访问 SQL Server 的服务,客户端没有使用集成安全性,我们需要该服务在机器打开时拥有对数据库的权限。我们必须存储 SQL Server 用户名和密码吗?如果是在哪里?(如何)
3 回答
是的,如果您想使用特定的用户名和密码连接到 SQL Server,则需要在连接字符串中提供这些凭据。
是的,以纯文本形式存储它们有点冒险......
...幸运的是,.NET 允许您对配置文件的整个部分进行强加密!
阅读有关在 .NET 应用程序中加密密码的信息,与流行的看法相反,这在所有 .NET 中都可用 -而不仅仅是在 ASP.NET 中。它也适用于服务 - 根本不是问题。
因此,将您的 SQL Server 连接字符串存储到app.config
您的服务中,然后加密该<connectionStrings>
部分并完成它!
您需要为此服务创建 SQL 登录 (http://msdn.microsoft.com/en-us/library/aa337562.aspx)。此 SQL 登录的用户名/密码需要存储在服务可以访问的某个位置(应用程序配置/注册表)。
每当您存储凭据时,都要对其进行加密,这样其他人就无法以明文形式看到它。您还可以选择加密整个连接字符串。您的服务应该能够解密和读取凭据/连接字符串并将此信息传递给 sql 连接。
您应该在具有正确权限的服务器中将用户/服务名称添加为用户,并且在数据库中添加相同的名称,您可以使用 sql server 管理工作室来执行此操作。首先连接到服务器并在服务器用户文件夹中添加用户/服务,并将用户添加到数据库中的用户文件夹。
看看这篇文章,在页面末尾谈到“授予对本地 SQL Server 的访问权限”时