避免在连接字符串中给出userid / pass

时间:2011-03-28 13:52:23

标签: .net sql-server-2008 web-config connection-string database-connection

即时通讯使用共享托管公司来托管我的网站和数据库。 它们都被托管在同一台服务器上。

访问数据库我正在web配置中的连接字符串中提供用户ID和密码。

这让我感到非常不舒服。

有没有办法避免在web.config连接字符串中给出userid / pass?

1 个答案:

答案 0 :(得分:0)

您可以切换到OS身份验证:

  

Data Source = myServerAddress; Initial   目录= MYDATABASE;集成   安全= SSPI;

在这种情况下,授予对您的站点运行的帐户的数据库访问权限。或者,只是在web.config中的encrypt your connectionStrings section

<强>更新 我不确定在托管环境中会发生这种情况(托管服务商应该有一些常见问题解答),但是如果您的服务器是专用的,并且您在Sql Server上拥有管理权限,那么就可以这样做

create login [NT AUTHORITY\NETWORK SERVICE] from windows
create user [NT AUTHORITY\NETWORK SERVICE] for login [NT AUTHORITY\NETWORK SERVICE]
exec sp_addrolemember 'db_datareader',[NT AUTHORITY\NETWORK SERVICE]

授予访问权限的帐户是IIS中运行的应用程序池。 NetworkService是IIS 6.0的默认设置,但如果服务器是共享的,您可能有一个自定义帐户(在共享服务器上授予对NetworkService的访问权限会将您的数据库暴露给在NetworkAccount下运行的任何服务)。