数据库Oracle 19C,tomcat 8.5
业务账号密码通过tomcat连接数据库,tomcat报:ORA-28040:No matching authentication protocol。
解决:
从ORACLE_HOME/JDBC/lib拷贝ojdbc8.jar
在ORACLE_HOME下(非GRID_HOME)sqlnet.ora 两个节点添加
SQLNET.ALLOWED_LOGON_VERSION_SERVER=11。数字要和client版本一致。参考官档:12c and Later Releases: ORA-28040 After Upgrade: No Matching Authentication Protocol (Doc ID 1957995.1)
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70) ~[ojdbc6-11.1.0.7.0.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133) ~[ojdbc6-11.1.0.7.0.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:206) ~[ojdbc6-11.1.0.7.0.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455) ~[ojdbc6-11.1.0.7.0.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:406) ~[ojdbc6-11.1.0.7.0.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399) ~[ojdbc6-11.1.0.7.0.jar:Oracle JDBC Driver version - "11.1.0.7.0-Production"]
最后还有一步,很诡异,是从网上看到的,本着死马当活马医的原则试的,结果还可以了。
就是一个修改数据库密码的动作(可以改成和原来一样的密码)
然后再查询dba_users,发现password_version列多了一个10G。
稀里糊涂的,反正是连上了。
本文暂时没有评论,来添加一个吧(●'◡'●)