我有一台开发服务器,上面运行着 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
我也遇到了同样的问题并在这里找到了解决方案:
您需要找到您的 VPN 连接 .pbk 文件。
你可以在这里找到它:
C:\Users\{WindowsLogin}\AppData\Roaming\Microsoft\Network\Connections\Pbk
或者如果您将其设置为允许所有用户使用该连接,您可以在这里找到它:
C:\ProgramData\Microsoft\Network\Connections\Pbk
使用文本编辑器编辑它并找到以下行:
UseRasCredentials=1
将其设置为 0 即可禁用
UseRasCredentials=0
答案2
你有没有想过这个问题?我想我知道你的问题是什么了。
- 有问题的 VPN 可能是全隧道,如果是这样,那么即使取消选中“在远程网络上使用默认网关”选项也无济于事。使用全隧道 VPN,当您接入 VPN 时,无论您是否愿意,您的所有流量都将在 VPN 网络上。您可以在连接到 VPN 之前访问 ipchicken.com 等网站进行测试,然后在连接后再次刷新页面。如果 IP 发生变化,则说明您处于全隧道状态。
您尝试如何连接到 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 命令输入的凭据。