Windows 7下连接SQL服务器SSL安全错误的处理方法
问题描述:
客户有一个EXCEL的表格,其中有部分数据是需要访问SQL数据库,把查询结果导入表格的。但是最近一周忽然发生了导入数据的时候出错。错误信息如下:
SQLState:‘01000’
SQL Server 错误:1
[Microsoft] [ODBC SQL Server Driver][DBNETLIB]ConnectionOpen
(SECCreateCredentials())
连接失败:
SQLState:‘08001’
SQL Server 错误:18
[Microsoft] [ODBC SQL Server Driver][DBNETLIB]SSL安全错误
同样的文件,在Windows 10的系统下就可以正常工作。但是Windows 7 系统就会有这个问题。
原因分析:
初步判断是因为服务器可能最近开启了SSL验证。而Windows 7的系统连接客户端默认是没有开启SSL的.
解决方法:
1. 修改注册表,打开注册表编辑器。
找到以下2个键值,把Enable的值从0修改为1.
对应于SSL2.0
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client]
"Enabled"=dword:00000001
对应于SSL3.0
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client]
"Enabled"=dword:00000001
2. 建立一个注册表文件,把它导入注册表。
2.1 新建一个文本文件,把以下内容粘贴进去:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client]
"Enabled"=dword:00000001
2.2 把这个文本文件保存为 XXXX.REG 就可以直接双击导入注册表了。也可以用于其他有同样问题的电脑了。
至此问题解决。