5

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

目前我有我的站点设置,以便它可以使用我使用数据库名称、服务器 ip、db 用户和 db pwd 创建的连接字符串来读取/写入数据库。我创建的数据库用户在数据库中有一个“公共”角色设置(不是数据库所有者),并且可以运行 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 权限?

感谢您对此的想法。

4

2 回答 2

5

你不是在浪费你的时间。这是一个非常好的做法。当您在不同的机器上分离出 IIS 和 SQL 时,这里有一些选项:

  • 在 IIS 框和 SQL 服务器上创建 asp.net 用户(最好使用相同的密码)
  • 使用模拟(更改您的网站运行的上下文)
  • 将注册表中的连接字符串加密为配置文件并忘记受信任的连接 (brrrr)
  • 将 asp.net 上下文切换为域用户
  • 在本机应用程序模式下使用 IIS6
于 2009-06-25T16:23:16.023 回答
1

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

此外,登录必须创建为 Windows 身份验证,您不能将 SQL 身份验证登录与受信任的连接一起使用。

否则,塔波里所说的一切。

于 2009-06-25T16:24:44.027 回答