1

即时通讯使用共享托管公司承载我的网站和数据库。 他们都被托管在同一台服务器上。避免给用户名/传入连接字符串

访问数据库我目前在web配置中的连接字符串中提供userid和密码。

这只是让我真的很不舒服。

有没有我的方式来避免给web.config连接字符串userid /通过?

回答

0

您可以切换到OS认证:

数据源= myServerAddress;初始 目录= MyDatabase的;集成 安全性= SSPI;

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

更新: 我不知道这是如何发生在托管环境(主机供应商应该有一些FAQ),但如果你的服务器专用一个,你有你的SQL Server上的管理privilegies你可以这样做

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下运行的任何服务)。

+0

我该如何授予数据库访问权限?加密/解密影响性能? – raklos 2011-03-28 14:55:07

+0

raklos,我已经更新了如何授予访问IIS工作帐户的答案。至于加密/解密性能,我在实践中没有看到明显的差异。据我了解,只有当运行时实例化应用程序域时才会发生一次。 – UserControl 2011-03-28 21:25:45