连接到 VPN 后与 SQL 的信任连接失败

连接到 VPN 后与 SQL 的信任连接失败

我有一台开发服务器,上面运行着 SQL 2008 EXPRESS 实例。该域称为 DEVAD,该实例启用了共享内存、命名管道和 TCP/IP。

我的工作站PC位于名为 AD 的不同域中。

我在 AD 和 DEVAD 之间建立了域信任,并且我可以通过 SSMS 或 .NET 程序使用我的 AD 凭据连接到 DEVAD 实例。

不幸的是,当我使用不同域的凭据通过 VPN 连接到另一个网络时,出现以下错误“登录失败。登录来自不受信任的域,不能用于 Windows 身份验证。(Microsoft SQL Server,错误:18452)”。

我的 VPN 连接中的“在远程网络上使用默认网关”选项对于 IPv4 和 IPv6 均未选中。

关于如何防止 VPN 连接破坏信任,有什么想法吗?


更新:我有一个偶尔连接的附加 VPN,当这个 VPN 处于活动状态时,我可以同时连接到 SQL,没有任何问题。

我在 SQL 主机上对各种已连接和未连接的 VPN 进行了一些 nslookup 测试。我的问题 VPN 最终出现 DNS 超时,这可能意味着 VPN 上的 DNS 配置错误并吞噬了请求,而不是给出不存在的域响应(就像我的其他 VPN 那样),并让系统继续查询知道该域的 DNS。

答案1

我也遇到了同样的问题并在这里找到了解决方案:

http://social.technet.microsoft.com/forums/en-US/itprovistanetworking/thread/275599f0-6239-46a5-8245-50a5c13a2713/

您需要找到您的 VPN 连接 .pbk 文件。

你可以在这里找到它:

C:\Users\{WindowsLogin}\AppData\Roaming\Microsoft\Network\Connections\Pbk

或者如果您将其设置为允许所有用户使用该连接,您可以在这里找到它:

C:\ProgramData\Microsoft\Network\Connections\Pbk

使用文本编辑器编辑它并找到以下行:

UseRasCredentials=1

将其设置为 0 即可禁用

UseRasCredentials=0

答案2

你有没有想过这个问题?我想我知道你的问题是什么了。

  1. 有问题的 VPN 可能是全隧道,如果是这样,那么即使取消选中“在远程网络上使用默认网关”选项也无济于事。使用全隧道 VPN,当您接入 VPN 时,无论您是否愿意,您的所有流量都将在 VPN 网络上。您可以在连接到 VPN 之前访问 ipchicken.com 等网站进行测试,然后在连接后再次刷新页面。如果 IP 发生变化,则说明您处于全隧道状态。
  2. 您尝试如何连接到 SQL Server?您使用的是应用程序还是 SQL Server Management Studio?如果您可以从命令行运行该程序,那么使用带有 /netonly 开关的 runas windows 命令可能会成功。它使您能够登录到一个域,但以不同的域用户身份运行程序。如下所示:

    runas /user:MYDOMAIN\MYUSER /netonly “C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe”

将 SQL Server Manamgent Studio 的域、用户名和路径替换为适当的值。

当它要求您输入密码时,请输入您输入的域用户的密码。此时它不会对用户进行身份验证。然后,当您打开 SSMS 时,像平常一样连接到相关数据库,如果它无法使用您的正常凭据连接,它应该尝试使用您使用 runas 命令输入的凭据。

答案3

假设您的工作站位于域 A 上,而 VPN 中的服务器的域是 B

正如接受的答案所暗示的那样,问题在于 Windows 正试图将“域 A”凭据发送到“域 B”服务器,而“B”基本上回应说“我不知道‘A’是谁!”并拒绝身份验证请求。

您可以使用 Windows 凭据管理器覆盖此设置以发送您的“B”凭据。在凭据管理器的 Windows 凭据下,单击“添加 Windows 凭据”。地址应为 SQL 服务器(端口为 1433 或您的 SQL 端口),凭据应为“B 域”凭据(您可能更熟悉,domain\useruser@domain也是有效的)

添加 Windows 凭据

相关内容