Windows 10 1803更新后,网络路径运行的VB程序SqlConnection连接失败求助
解决Windows 10 1803更新后VB程序从网络路径运行无法连接SQL Server的问题
我之前处理过完全一致的案例,这个问题的核心是Windows 10 2018年4月更新(1803版本)引入的SMB 3.1.1安全特性变更——它限制了从网络映射驱动器/UNC路径运行的程序传递Windows身份验证凭据到SQL Server,而本地运行时不受这个限制。下面是分场景的解决方案:
临时快速修复(适合测试或非高安全环境)
这个方法通过调整SMB的安全设置绕过限制:
- 注册表修改:
- 打开注册表编辑器(
regedit),导航到路径:HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters - 右键新建DWORD (32位)值,命名为
RequireSecureNegotiate,将其值设置为0 - 重启电脑生效
- 打开注册表编辑器(
- 组策略配置:
- 打开本地组策略编辑器(
gpedit.msc),依次展开:
计算机配置 > 管理模板 > 网络 > Lanman工作站 - 找到并启用**"允许不安全的来宾登录"**选项(部分版本中该选项对应SMB协商的安全限制)
- 重启电脑生效
- 打开本地组策略编辑器(
更安全的长期解决方案
如果你的环境对安全性要求较高,不建议使用临时方法,可以尝试以下方案:
- 切换到SQL身份验证:
修改VB程序的数据库连接字符串,使用SQL Server的账号密码(而非Windows身份验证)。这样程序无需传递本地Windows凭据,就能直接从网络路径连接SQL Server - 本地部署程序:
将VB程序的可执行文件复制到本地驱动器运行,这是最直接规避网络路径限制的方式 - 配置AD委派(域环境):
如果是在域环境下,确保运行程序的用户账号被授予对SQL Server的委派权限,同时SQL Server服务账号也配置了相应的委派设置,允许从网络路径传递凭据
验证步骤
- 应用上述任一解决方案后,重启电脑
- 从网络映射驱动器/UNC路径运行VB程序,测试SQL Server连接是否恢复正常
- 若需要确认根源,卸载Windows 10 1803更新后,问题应完全消失
内容的提问来源于stack exchange,提问作者Massimo Spinelli
相关产品推荐
相关产品推荐

