即时通讯使用共享托管公司来托管我的网站和数据库。 它们都被托管在同一台服务器上。
访问数据库我正在web配置中的连接字符串中提供用户ID和密码。
这让我感到非常不舒服。
有没有办法避免在web.config连接字符串中给出userid / pass?
答案 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下运行的任何服务)。