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






![告五人所有代表作歌曲无损音乐合集打包下载[Hi-Res+WAV+mp3] 3.4GB -豆豆自媒体](https://fuye.netsite.cc/wp-content/uploads/2024/07/frc-a9513fff49e82fe2301cc69f8ccc14a3-300x199.jpg)





