使用域外的AD登录详细信息验证SQL连接

时间:2013-04-16 10:56:49

标签: c# .net sql

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

我有以下连接字符串:

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

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

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

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

1 个答案:

答案 0 :(得分:3)

您需要:

  1. 在连接字符串中使用Integrated Security,并在资源域(SQL服务器所在的位置)和帐户域(帐户所在位置)之间创建域信任关系。或...
  2. 在SQL Server中创建一个帐户,并在连接字符串中将其用作用户名和密码。
  3. 您通过将域凭据放入user / pass并且甚至没有信任关系来进行无效混合。

    编辑:

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

    无论您是创建2层(胖客户端直接访问sql)还是3层(客户端访问访问sql的中间层应用服务器),这也很有趣。如果是后者,则应用程序对用户进行身份验证和授权,之后,它使用配置设置和sql特定用户/传递来访问sql。如果它是前者并且您正在使用sql帐户,则每个客户端需要一个,这是一个问题。