7

我正在尝试从域外部连接到 SQL 服务器。

我有以下连接字符串:

SqlConnection("SERVER=Server;DATABASE=Database;User ID=Domain\User;Password=password");

当我尝试在域外使用它时,这将失败,因为它尝试使用 SQL 身份验证登录。

有没有办法将命令传递到字符串中以使用 Active Directory 身份验证。

使用域外的活动目录详细信息连接到 SQL 服务器还有哪些其他方法?

4

1 回答 1

3

您要么需要:

  1. 在您的连接字符串中使用集成安全性,并在您的资源域(SQL 服务器所在的位置)和您的帐户域(帐户所在的位置)之间创建域信任关系。或者...
  2. 在 SQL Server 中创建一个帐户,并在连接字符串中使用该帐户作为用户名和密码。

您通过将域凭据放入用户/密码中进行了无效组合,甚至没有信任关系。

编辑:

注释表明需要将 SQL 帐户与 AD 凭据同步。这不是必需的。sql 帐户只是 SQL 范围内的用户名和密码,它特定于 SQL 服务器,与域凭据无关。如果您使用 SQL 帐户,那么这些将成为您应用程序中的配置设置,用于构建正确的连接并通过网络发送。SQL 服务器在本地对这些凭据进行身份验证,而不涉及 AD。

是否创建 2 层(胖客户端直接访问 sql)或 3 层(客户端访问访问 sql 的中间层应用服务器)也很有趣。如果是后者,您的应用程序对用户进行身份验证和授权,然后,它使用带有 sql 特定用户/密码的配置设置来访问 sql。如果是前者并且您使用的是 sql 帐户,那么每个客户都需要一个,这是一个问题。

于 2013-04-16T11:52:09.780 回答