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

时间:2009-06-25 16:08:27

标签: sql web-config connection-string trustedconnection

我目前设置了2台服务器。一个是运行Win Server 08的Web服务器,另一个是在Win Server 08上运行SQL Server 08的数据库服务器。

目前我的网站设置是这样的,它可以使用我用数据库名称,服务器ip,db用户和db pwd创建的连接字符串来读/写数据库。我创建的db用户在数据库(而不是db owner)中设置了“公共”角色,并且只能运行exec存储过程。我的连接字符串目前看起来像这样:

<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个不同的服务器时,是否有一种简单的方法来实现与数据库的连接而无需使用用户名和密码进行硬编码(如上面的连接字符串)?我是否在浪费时间沿着这条路走下去,看看我创建的数据库用户是如何只有exec权限呢?

感谢您对此的看法。

2 个答案:

答案 0 :(得分:5)

你不是在浪费时间。这是一个非常好的做法。当您在不同的计算机上分离出IIS和SQL时,可以使用以下选项:

  • 在IIS框和SQL服务器上创建asp.net用户(最好使用相同的密码)
  • 使用模拟(更改网站运行的上下文)
  • 加密注册表配置文件中的连接字符串,忘记可信连接(brrrr)
  • 将asp.net上下文切换为域用户
  • 在本机应用程序模式下使用IIS6

答案 1 :(得分:1)

如果2台服务器不在同一个Windows域中,则无法使用可信连接。

此外,必须将登录名创建为Windows身份验证,不能使用具有可信连接的SQL身份验证登录。

否则,Tapori说的一切。