远程数据库服务器的连接字符串

5
我目前有两台服务器。一台是运行Win Server 08的Web服务器,另一台是运行SQL Server 08的数据库服务器,也是运行Win Server 08的。
目前,我已经设置了我的网站,可以通过使用连接字符串读写数据库。该连接字符串包含了数据库名称、服务器IP、数据库用户和数据库密码。我创建的数据库用户在数据库中具有“公共”角色(而不是数据库所有者),只能运行执行存储过程的权限。我的连接字符串当前看起来像这样:
<add name="SiteDBConn" connectionString="Server=IPOfServer;Database=DBname;User ID=userhere;Password=passhere;"/>

虽然这对我来说完全正常,但我想设置一个不包含任何用户名和密码的数据库连接字符串。在我的其他一些服务器上,其中SQL服务器与Web文件位于同一服务器上,我能够使用可信连接并使用内置的“网络服务”用户在我的数据库上。这使我能够运行一个没有用户名和密码的连接字符串,如下所示:

<add name="SiteDBConn" connectionString="Server=localhost;Database=DBname;Trusted_Connection=Yes;"/>

在使用两个不同的服务器时,是否有一种简单的方法可以实现连接到数据库而无需硬编码用户名和密码 - 就像上面的连接字符串一样?考虑到我创建的数据库用户只具有执行权限,那么走这条路是否浪费时间呢?

感谢您对此的想法。

2个回答

5

您不会浪费时间。这是非常好的实践。当您将IIS和SQL分开放置在不同的机器上时,有以下几个选项:

  • 在IIS服务器和SQL服务器上创建asp.net用户(最好使用相同的密码)
  • 使用模拟身份(更改站点运行的上下文)
  • 在配置文件中加密连接字符串并忘记信任连接(嗯~)
  • 将asp.net上下文切换为域用户
  • 使用本地应用程序模式的IIS6

谢谢您的反馈。关于模拟,您知道有哪些好的指南或设置步骤吗?干杯。 - Richard Reddy
实际上,忘了我上一个问题吧。在你的文章和这个问题之间,我已经得到了我需要的信息。谢谢。http://stackoverflow.com/questions/982216/database-connections-work-fine-when-application-is-run-from-localhost-login-fai - Richard Reddy

1
如果两个服务器不在同一个Windows域中,则无法使用受信任的连接。
此外,登录必须创建为Windows身份验证,您不能使用带有受信任连接的SQL身份验证登录。
否则,一切都是Tapori说的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接