连接池连接 Oracle 数据库时出现 'java.sql.SQLException: ORA-28040: No matching authentication protocol' 异常,通常是因为 JDBC 驱动程序版本不兼容导致的。Oracle 数据库 12c 中加强了身份验证协议的安全性,需要使用兼容的 JDBC 驱动程序版本。

解决方法如下:

  1. 升级 JDBC 驱动程序版本到兼容的版本,例如 ojdbc8.jar。

  2. 如果无法升级 JDBC 驱动程序版本,可以在连接字符串中添加以下参数:

    'jdbc:oracle:thin:@//:/<service_name>?oracle.net.crypto_checksum_client=REQUIRED&oracle.net.crypto_checksum_types=SHA256'

    这将强制使用 SHA256 加密协议进行连接验证。

  3. 如果仍然无法解决问题,可以考虑在 Oracle 数据库中降低身份验证协议的安全性,但这不是推荐的做法,因为会降低系统的安全性。

Java 连接池连接 Oracle 数据库出现 ORA-28040 错误解决方案

原文地址: https://www.cveoy.top/t/topic/kSZD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录