无法通过Windows 2012上的系统dsn使用ODBC连接连接到SQL Server 2008

时间:2015-04-14 21:28:15

标签: sql-server-2008 odbc windows-server-2012

我有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相关的错误。

4 个答案:

答案 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