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