Windows 11下使用MSOLEDBSQL19连接SQL Server 2005失败求助
解决MSOLEDBSQL19驱动在Windows 11连接SQL Server 2005失败的问题
针对你遇到的MSOLEDBSQL19驱动在Win11无法连接SQL2005,但其他驱动正常的情况,可尝试以下方案:
在连接字符串中强制指定TLS版本
MSOLEDBSQL19默认可能优先使用TLS1.2+,即使系统启用了旧协议也不会自动降级适配。修改连接字符串,明确指定TLS版本并开启证书信任:Provider=MSOLEDBSQL19;Data Source=你的SQL服务器地址;Initial Catalog=数据库名;User ID=用户名;Password=密码;Encrypt=YES;TrustServerCertificate=YES;TLS Version=TLS1.0也可尝试将
TLS Version改为TLS1.1,两种版本都测试确认。检查驱动的旧版SQL Server支持配置
部分新版本的MSOLEDBSQL19可能默认禁用了对SQL Server 2005的支持,可通过注册表调整:- 打开注册表编辑器,定位到
HKLM\SOFTWARE\Microsoft\MSOLEDBSQL19 - 查找是否存在
DisableSQLServer2005Support键值,若存在将其设为0;若不存在则新建DWORD值,命名为该名称并设为0 - 重启应用或电脑后重试连接
- 打开注册表编辑器,定位到
验证TLS协议的实际生效状态
即使通过IISCrypto启用了TLS1.0/1.1,仍需手动确认注册表配置是否正确:- 对于TLS1.0客户端:
HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client,确保Enabled为1,DisabledByDefault为0 - 对于TLS1.1客户端:
HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client,同样设置上述两个键值
修改后务必重启电脑,确保配置生效
- 对于TLS1.0客户端:
尝试降级MSOLEDBSQL19驱动版本
MSOLEDBSQL19后续版本可能移除了对SQL2005的兼容性支持,可尝试安装早期的19.x版本(如19.0.2.0),这类版本保留了对旧版SQL Server的支持检查ADO连接的初始化属性
如果是通过代码手动初始化ADO连接,可尝试添加OLE DB属性强制指定协议:Dim conn As New ADODB.Connection conn.Properties("TLS Version") = "TLS1.0" conn.Open "Provider=MSOLEDBSQL19;Data Source=...;其他参数..."
内容的提问来源于stack exchange,提问作者RedCube
相关产品推荐
相关产品推荐

