问题描述:
使用低版本客户端访问高版本的数据库,如使用11G客户端访问12C、19C库时,出现ORA-28040报错,无法登录数据库。
解决方法:
1. 修改数据库端sqlnet.ora配置文件(需要重新修改用户密码生效)
修改 $ORACLE_HOME/network/admin/sqlnet.ora 文件,两种修改方法,可任选其一:
a、增加一行配置如下
SQLNET.ALLOWED_LOGON_VERSION=8
b、增加两行配置如下
SQLNET.ALLOWED_LOGON_SERVER=8
SQLNET.ALLOWED_LOGON_CLIENT=8
注:如果是RAC集群,只修改oracle用户下所有节点sqlnet.ora 的配置,配置增加保存后立即生效
修改所有数据库用户的密码后,解决ORA-01017 :用户名/口令无效;登录被拒绝报错。
--修改system用户密码为 12345678
alter user system identified by 12345678;
2. 升级客户端版本与数据库相同版本
官方客户端下载地址:https://www.oracle.com/database/technologies/instant-client/downloads.html
可下载对应版本,安装后解决。
对于JDBC的报错,下载对应JDK的驱动,官方下载地址:https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html
如本地jdk版本为1.6,则下载ojdbc6.jar;jdk版本为1.7,则下载ojdbc7.jar; jdk版本为1.8,则下载ojdbc8.jar
参考连接:
https://www.cnblogs.com/Lawson/archive/2012/12/22/2829161.html
https://blog.csdn.net/c1z2w3456789/article/details/81082374