Java 连接池连接 Oracle 数据库出现 ORA-28040 错误解决方案
连接池连接 Oracle 数据库时出现 'java.sql.SQLException: ORA-28040: No matching authentication protocol' 异常,通常是因为 JDBC 驱动程序版本不兼容导致的。Oracle 数据库 12c 中加强了身份验证协议的安全性,需要使用兼容的 JDBC 驱动程序版本。
解决方法如下:
-
升级 JDBC 驱动程序版本到兼容的版本,例如 ojdbc8.jar。
-
如果无法升级 JDBC 驱动程序版本,可以在连接字符串中添加以下参数:
'jdbc:oracle:thin:@//
: /<service_name>?oracle.net.crypto_checksum_client=REQUIRED&oracle.net.crypto_checksum_types=SHA256' 这将强制使用 SHA256 加密协议进行连接验证。
-
如果仍然无法解决问题,可以考虑在 Oracle 数据库中降低身份验证协议的安全性,但这不是推荐的做法,因为会降低系统的安全性。
原文地址: https://www.cveoy.top/t/topic/kSZD 著作权归作者所有。请勿转载和采集!