使用Windows11的SSMS无法连接SQLServer 2008R2

 

用户反映在使用Windows11时无法连接SQLServer 2008R2,老系统Windows7/10使用正常,错误提示如下,:

图片

这是SQL Server的连接错误提示界面,核心问题是登录前的加密握手失败(错误码10054,远程主机关闭连接),常见于Windows 11客户端连接旧版SQL Server 2008的场景。

由于系统比较老旧,不打算改动服务器这一端,避免造成其他影响;而且使用Windows11之前的用户都正常,聚焦在Windows11用户端这一侧。

通过AI提供以下客户端侧的针对性解决步骤:

1. 启用客户端TLS旧协议(匹配SQL Server 2008加密规则)

Windows 11默认禁用TLS 1.0/1.1(SQL Server 2008原生依赖),需手动开启:

  • • 打开“控制面板→Internet选项→高级”;
  • • 勾选“使用TLS 1.0”“使用TLS 1.1”,保留“TLS 1.2”勾选;
  • • 重启SQL连接工具(如SSMS)。

经验证无效。

2. 调整SSMS连接的加密选项

在连接界面跳过不兼容的加密验证:

  • • 打开“连接到服务器”窗口,点击“选项”;
  • • 切换到“连接属性”,将“加密连接”设为“不加密”,或勾选“信任服务器证书”;
  • • 重新尝试连接。

没有该选项和功能。

3. 安装兼容的旧版SQL客户端驱动

Windows 11默认驱动对SQL Server 2008支持不足,需安装适配驱动:

  • • 下载“SQL Server Native Client 10.0”(对应SQL Server 2008的官方驱动);
  • • 安装后重启连接工具,工具会自动调用兼容驱动。

经验证无卵用。

4. 以兼容模式运行SSMS

强制SSMS适配旧系统的握手逻辑:

  • • 右键SSMS图标→“属性→兼容性”;
  • • 勾选“以兼容模式运行(Windows 7)”和“以管理员身份运行”;
  • • 重启SSMS后连接。

经验证无卵用。

5. 通过注册表启用TLS1.0/1.1

若 Windows 11/10 的 “Internet 选项” 中未显示 TLS 1.0/1.1 选项,需通过注册表手动配置(操作前建议备份注册表):

  1. 1. 打开注册表编辑器:
    • • 按下Win+R,输入regedit并回车,确认 UAC 提示后进入注册表。
  2. 2. 导航到 TLS 协议对应的注册表路径:
    • • 依次展开:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols
  3. 3. 新建 TLS 1.0 的子项及配置:
    • • 右键 “Protocols”→“新建”→“项”,命名为TLS 1.0
    • • 右键 “TLS 1.0”→“新建”→“项”,命名为Client
    • • 选中 “Client” 项,右键空白处→“新建”→“DWORD (32 位) 值”:
      • • 名称:DisabledByDefault,数值数据:0(表示不禁用)。
      • • 名称:Enabled,数值数据:1(表示启用)。
  4. 4. 新建 TLS 1.1 的子项及配置:
    • • 重复步骤 3,在 “Protocols” 下新建TLS 1.1项,再在其下新建Client项。
    • • 在 “TLS 1.1\Client” 下新建两个 DWORD 值:
      • • DisabledByDefault0
      • • Enabled1
  5. 5. 生效:
    • • 关闭注册表编辑器,重启电脑,设置即可生效。

经验证无效。

6. 最终解决

最终还是通过bing搜索到一个帖子。
打开注册表,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002,修改“Functions”,增加一个加密算法TLS_RSA_WITH_3DES_EDE_CBC_SHA。

图片

重启SSMS后连接成功。

告诉别人不值一分钱,但自己折腾了有大半天。

 


© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享