KB2653857 - 修复:升级到 JRE 6 update 29 或更高版本后,无法使用 JDBC Driver for SQL Server 连接到SQL Server

应用对象
SQL Server 2008 Service Pack 3 SQL Server 2008 R2

Microsoft将 Microsoft SQL Server 2008 Service Pack 3 (SP3) 或 Microsoft SQL Server 2008 R2 修补程序分发为一个可下载文件。 由于修补程序是累积的,因此每个新版本都包含以前的 SQL Server 2008 Service Pack 3 (SP3) 或 SQL Server 2008 R2 修补程序版本中包含的所有修补程序和所有安全修补程序。

症状

请考虑以下情形:

  • 你有一个使用 Java 和 Microsoft JDBC Driver for SQL Server 连接到SQL Server的客户端应用程序。
  • 将 Oracle Java 运行时环境 (JRE) 升级到版本 6 Update 29 或更高版本。
  • 升级 JRE 后,无法再连接到SQL Server。

在这种情况下,JDBC 驱动程序在尝试打开连接时可能会停止响应。 此外,如果使用以下方法之一加密连接,JDBC 驱动程序会立即失败,并生成调用堆栈:

  • 在连接 URL 中,Encrypt 属性设置为 True。
  • SQL Server配置为强制加密。

        
        
便笺

  • 如果使用包含与 JRE 版本 6 Update 29 及更高版本相同行为更改的安全套接字层 (SSL) /传输层安全性 (TLS) 的第三方实现,则可能会遇到此问题。 此行为更改修复了称为“BEAST”的特定安全问题。如果不确定第三方产品是否包含包含此更改的 SSL/TLS 实现,请联系该产品的供应商。
  • 使用 OpenSSLlibrary 的任何数据访问提供程序也可能导致此问题。

      

原因

出现此问题的原因是,当 SSL 数据拆分为多个表格数据Stream (TDS) 数据包时,SQL Server引擎无法处理登录记录。

解决方法

SQL Server 2008 R2 的 Service Pack 信息

若要解决此问题,请获取 SQL Server 2008 R2 的最新 Service Pack。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2527041
如何获取 SQL Server 2008 R2 的最新 Service Pack

累积更新信息

SQL Server 2008 R2 Service Pack 1

此问题的修补程序首次发布在累积更新 6 for SQL Server 2008 R2 Service Pack 1 中。 有关如何获取此累积更新包的详细信息,请单击下面的编号以查看Microsoft知识库中的文章:

2679367累积更新包 6 for SQL Server 2008 R2 Service Pack 1 注意 由于内部版本是累积的,因此每个新修补程序版本都包含所有修补程序和以前的 SQL Server 2008 R2 修补程序版本中包含的所有安全修补程序。 建议考虑应用包含此修补程序的最新修补程序版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2567616 在 SQL Server 2008 R2 Service Pack 1 发布之后发布的 SQL Server 2008 R2 内部版本

SQL Server 2008 SP3 的累积更新包 3

此问题的修补程序首次在累积更新 3 中发布。 有关如何为 SQL Server 2008 Service Pack 3 获取此累积更新包的详细信息,请单击以下序列号以查看Microsoft知识库中的文章:

2648098 SQL Server 2008 Service Pack 3 的累积更新包 3 注意 由于内部版本是累积的,因此每个新修补程序版本都包含所有修补程序和以前的 SQL Server 2008 Service Pack 3 修补程序版本中包含的所有安全修补程序。 建议考虑应用包含此修补程序的最新修补程序版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2629969 SQL Server 2008 Service Pack 3 发布后发布的 SQL Server 2008 版本

详细信息

有关此问题的详细信息,请访问以下网站:

Microsoft安全公告 (2588513)
      

解决方法

若要解决此问题,请使用以下某种方法:

  • 使用早于 JRE 版本 6 Update 29 的 Oracle JRE 版本。

  • 在 JRE 级别禁用 SSL 记录拆分。
    便笺

    • 此方法可能会对 HTTP 通信产生安全影响。
    • 有关此过程的详细信息,可以联系。

本文中提到的第三方产品由 Microsoft 以外的其他公司提供。 Microsoft 不对这些产品的性能或可靠性作任何默示或明示的担保。

状态

Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。
此问题在 SQL Server 2008 R2 Service Pack 2 中首次更正。