栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java7 sqljdbc4-getConnection()上的SQL错误08S01

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java7 sqljdbc4-getConnection()上的SQL错误08S01

用以下行注释行

setEncrypt(true)

...dSource.setDatabaseName(REDACTED);//dSource.setEncrypt(true);dSource.setTrustServerCertificate(true);...

您可能无法使用加密设置。从setEncrypt(…)文档中:

如果crypto属性设置为 true ,则Microsoft SQL Server
JDBC驱动程序将使用JVM的默认JSSE安全提供程序与SQL
Server协商SSL加密。默认安全提供程序可能不支持成功协商SSL加密所需的所有功能。例如,默认安全提供程序可能不支持SQL Server
SSL证书中使用的RSA公钥的大小。在这种情况下,默认的安全提供程序可能会引发错误,这将导致JDBC驱动程序终止连接。为了解决此问题,请执行以下任一操作:

  • 使用具有较小的RSA公钥的服务器证书配置SQL Server

  • 在“ /lib/security/java.security”安全属性文件中,将JVM配置为使用其他JSSE安全提供程序。

  • 使用其他JVM

更新资料

在Java版本1.6.0_29和7.0.0_1中,Oracle引入了SSL / TLS
BEAST攻击的安全修复程序,很可能会引起同样的问题。已知上述安全修复程序会同时使用jTDS驱动程序和Microsoft驱动程序给与MSSQL
Server的数据库连接造成麻烦。你可以

  • 通过不使用来决定不使用加密
    setEncrypt(true)
    (如上所述)
  • 或者,如果它是由MSSQL Server强制执行的,则可以通过设置
    -Djsse.enableCBCProtection=false
    系统属性来关闭JVM中的Java修复程序。请注意,它将影响同一VM内的所有SSL连接。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/595701.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号