jdbc-sqlserver的几个错误

数据库从orcal转到sql server,原来的lib不能用,提示

com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)。
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(Unknown Source)

https://mvnrepository.com/artifact/com.microsoft.sqlserver

下载最新的库,依然报错,如下: 

com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]”。 ClientConnectionId:700f3343-a794-4be8-b07a-b0d4a7493ded

这次具体到TLS版本问题,因为服务器端版本较低,客户端较新,尝试降低几个lib版本依然如此,

后根据搜索结果,发现是jdk/jre中的安全版本问题;

在 

Java\jdk1.8.0_351\jre\lib\security

下的 java.security 文件中,找到配置:

jdk.tls.disabledAlgorithms

看起来是设置失效的tls算法,

jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
    DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
    include jdk.disabled.namedCurves

改为

jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, \
    DH keySize < 1024, EC keySize < 224, anon, NULL, \
    include jdk.disabled.namedCurves

即重新使能了 TLSv1,TLSv1.1及3DES_EDE_CBC。

而后可以跑起来了。

----------

原jdbc.properties配置

sys.dbtype=oracle
sys.driverClass=oracle.jdbc.driver.OracleDriver
sys.jdbcUrl=jdbc:oracle:thin:@ip:1521:orcl
sys.user=username
sys.password=userpwd
sys.dialect=org.hibernate.dialect.Oracle10gDialect

现在

sys.dbtype=sqlserver
sys.driverClass=com.microsoft.sqlserver.jdbc.SQLServerDriver
sys.jdbcUrl=jdbc:sqlserver://ip:1433;databaseName=dbname;encrypt=false;trustServerCertificate=true
sys.user=sa
sys.password=pwd
sys.dialect=org.hibernate.dialect.SQLServerDialect

参考:

javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher su 解决办法_wx6441315a5b423的技术博客_51CTO博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,com.microsoft.sqlserver.jdbc.SQLServerException是一个SQL Server数据库连接异常。它通常表示在与SQL Server数据库建立连接或执行SQL查询时发生了错误。具体的错误信息'infodba'无法确定,因为它是根据具体的数据库和操作而变化的。 要解决这个问题,可以尝试以下几个步骤: 1. 检查数据库连接参数:确保数据库连接参数(如URL、用户名和密码)正确无误。可以参考SQL Server JDBC驱动程序的文档来确认参数的正确性。 2. 检查数据库服务器状态:确保SQL Server数据库服务器正在运行,并且可以通过网络访问。可以尝试使用其他工具(如SQL Server Management Studio)连接到数据库服务器,以确认服务器是否可用。 3. 检查数据库权限:确保连接数据库的用户具有足够的权限执行所需的操作。可以尝试使用具有更高权限的用户连接数据库,以确认是否是权限问题。 4. 检查SQL查询语句:如果异常是在执行SQL查询时发生的,可以检查查询语句是否正确。确保语法正确,并且查询的表、列等对象存在于数据库中。 5. 检查数据库驱动程序版本:如果使用的是旧版本的SQL Server JDBC驱动程序,可能会遇到一些已知的问题。尝试升级到最新版本的驱动程序,以解决可能存在的问题。 请注意,以上步骤仅供参考,具体解决方法可能因具体情况而异。如果问题仍然存在,请提供更多详细信息,以便能够提供更准确的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值