我有Windows 2012服务器,我可以通过创建数据连接,通过Visual Studio Server Explorer连接到SQL Server 2008实例。我也可以使用SQL Server Management Studio并连接到该SQL Server。但由于某些原因,当我尝试使用ODBC数据源管理器连接来设置DSN时,我收到以下错误。
连接失败:
SQLState:'01000'
SQL错误:1
[Microsoft] [ODBC SQL Server驱动程序] [DBNETLIB] ConnectionOpen(SECCreateCredentials())。
连接失败:
SQLState:'08001'
SQL错误:18
[Microsoft] [ODBC SQL Server驱动程序] [DBNETLIB] SSL安全性错误
我似乎无法找到任何关于此的内容,并想知道是否有人熟悉这个问题。
我想补充一点,客户端和服务器都没有强制执行加密,因此对我来说有点困惑,我会收到与ssl相关的错误。
答案 0 :(得分:8)
打开ODBC日志后得到事件消息
创建SSL客户端凭据时发生致命错误。内部错误状态为10013。
这并没有把我引向确切的问题,但确实引导我解决了类似的错误。
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Protocols \ TLS 1.0 \ Client \ Enabled需要从0翻转为1
答案 1 :(得分:0)
如果在SQL Server上禁用了TLS 1.0和TLS 1.1(这是一种很好的安全措施),您可能需要在客户端计算机上禁用它。我有一个Win 2012 R2服务器,有这个问题。
在注册表中:
.portfolio-nested
您可能需要重新启动设备才能使设置生效。
答案 2 :(得分:0)
在带有SQL Server 2016的Windows Server 2016上,我禁用了TLS 1.0和1.1,仅一个旧站点出现了问题(服务器上其他较新的站点运行正常)。
我尝试将目标版本从4.0更新到4.7,但这并不能解决问题。
问题是一些非常古老的代码使用OleDbDataReader
调用了数据库,我将其升级为使用SqlDataReader
,并且成功了。
在其他任何地方都找不到此消息,因此认为这里的帖子可能会对以后的其他人有所帮助...
答案 3 :(得分:-1)
启用以下内容 本地安全政策 - >本地政策 - >安全选项 - > '系统加密:使用符合FIPS标准的算法进行加密,散列和签名
并运行gpupdate / force