记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。

Centos6系统下tomcat7 jdk7 JSP网站连接oracle12c PDB数据库提示ORA-28040,ORA-01017解决方法

oracle18c 数据库已经发布,在安装Oracle 18c数据库之后,客户端目前一般还是停留在10G、11G,
如果客户端工具的版本是toad、plsql在连接12c、18c就会报如下两个错误:

ORA-28040: No matching authentication protocol

ORA-01017: invalid username/password; logon denied


如果是JAVA或是JSP程序,可以查看lib中的文件,将oracle中的ojdbc.jar(有可能修改了名称)替换下就行了。

有些是java spring 需要将ojdbc.jar放到JDK或是tomcat对应目录下。

一、ORA-28040报错解析:

按照官方说法在服务端sqlnet.ora下需要添加如下参数。


SQLNET.ALLOWED_LOGON_VERSION_CLIENT

SQLNET.ALLOWED_LOGON_VERSION_SERVE


注意:参数和等号之间不要有空格,否则有可能参数不生效。

SQLNET.ALLOWED_LOGON_VERSION=8

SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

SQLNET.ALLOWED_LOGON_VERSION_SERVE=10


这里的n默认为11. 第一个参数是客户端连接到服务器的时候启作用,第二个是做为客户端去连接其它数据库的时候启作用。

修改后使用reload 监听程序。

  1. # 修改该文件即可解决

  2. vi $ORACLE_HOME/network/admin/sqlnet.ora

  3. SQLNET.ALLOWED_LOGON_VERSION=8

 

二、ORA-01017错误解析

ORA-01017错误

从错误提示看是用户名或者密码错误,其实用户名和密码没有问题。 这里的问题是我们配置的sqlnet对之前已经存在的帐号并没有生效,他们还保持在之前的兼容性。

解决方案:

使用alter修改密码

alter user 用户名 identified by new_password replace old_password;

方法二:

一、 查看oracle 帮助文档:readme.txt,找到对应版JDK的程序包。



二、 根据文档能看出来不同的JDK匹配相应的ojdbc.jar,而相应的jar包基本上可以从oracle的完整安装包找到.


三、 找到jar包后替换掉旧的jar包,添加到自己JAVA程序中的,替换相关文件,可能会名称不一样,注意核对。






转载请标明出处【tomcat7+jdk7+JSP网站连接oracle12c PDB数据库提示ORA-28040,ORA-01017解决方法】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论