【故障处理】ORA-28040: No matching authentication protocol

1>  告警日志中频繁出现Using deprecated SQLNET.ALLOWED_LOGON_VERSION parameter、

ORA-28040: No matching authentication protocol错误

故障环境介绍

DB 类型:RAC

DB version:12.1.0.2

2>  故障发生现象及报错信息

告警日志中频繁出现Using deprecated SQLNET.ALLOWED_LOGON_VERSION parameter。Sun Oct 27 08:34:58 2019Using deprecated SQLNET.ALLOWED_LOGON_VERSION parameter.Sun Oct 27 08:34:58 2019Using deprecated SQLNET.ALLOWED_LOGON_VERSION parameter.Sun Oct 27 08:34:58 2019Using deprecated SQLNET.ALLOWED_LOGON_VERSION parameter.Sun Oct 27 08:34:58 2019Using deprecated SQLNET.ALLOWED_LOGON_VERSION parameter.Sun Oct 27 08:34:58 2019Using deprecated SQLNET.ALLOWED_LOGON_VERSION parameter.Sun Oct 27 08:34:58 2019Using deprecated SQLNET.ALLOWED_LOGON_VERSION parameter.Sun Oct 27 08:34:58 2019或JDBC连接Oracle12c报如下错误:Caused by: java.sql.SQLException: ORA-28040: No matching authentication protocolat oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:283)at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:278)at oracle.jdbc.driver.T4CTTIoauthenticate.receiveOsesskey(T4CTTIoauthenticate.java:294)at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:357)at oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:441)at oracle.jdbc.driver.T4CConnection.(T4CConnection.java:165)at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)at java.sql.DriverManager.getConnection(DriverManager.java:582)at java.sql.DriverManager.getConnection(DriverManager.java:154)

或者使用9i的客户端去连接12c的数据库就会报ORA-28040: No matching authentication protocol这个错误。

解决过程

使用oerr命令来查看,在Oracle 11g下:

 1 [oracle@orcltest ~]$ oerr ora 280402 3 28040, 0000, "No matching authentication protocol"4 5 // *Cause:  No acceptible authentication protocol for both client and server6 7 // *Action: Administrator should set SQLNET_ALLOWED_LOGON_VERSION parameter8 9 //          on both client and servers to values that matches the minimum
10
11 //          version supported in the system.
12
13 [oracle@orcltest ~]$
14
15 12c下:
16
17  oerr ora 28040
18
19 28040, 0000, "No matching authentication protocol"
20
21 // *Cause:  There was no acceptable authentication protocol for
22
23 //          either client or server.
24
25 // *Action: The administrator should set the values of the
26
27 //          SQLNET.ALLOWED_LOGON_VERSION_SERVER and
28
29 //          SQLNET.ALLOWED_LOGON_VERSION_CLIENT parameters, on both the
30
31 //          client and on the server, to values that match the minimum
32
33 //          version software supported in the system.
34
35 //          This error is also raised when the client is authenticating to
36
37 //          a user account which was created without a verifier suitable for
38
39 //          the client software version. In this situation, that account's
40
41 //          password must be reset, in order for the required verifier to
42
43  

可以看到,该参数在11g和12c下的解决方案是不同的。

查询了一下参数SQLNET.ALLOWED_LOGON_VERSION,发现该参数在12c中以废弃,而是采用SQLNET.ALLOWED_LOGON_VERSION_CLIENT和SQLNET.ALLOWED_LOGON_VERSION_SERVER代替。

客户说是之前碰到了ORA-28040: No matching authentication protocol的错误才加上该参数的。

解决:在Oracle用户(不是grid用户)下,将$ORACLE_HOME/network/admin/sqlnet.ora文件原来的SQLNET.ALLOWED_LOGON_VERSION=8注释掉(如果没有sqlnet.ora文件,那么就创建一个),修改为如下的行:

1 SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
2
3 SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

不用重启数据库或者监听,也不用重启应用。

区别如下:

SQLNET.ALLOWED_LOGON_VERSION_SERVER:控制可以连接到12c数据库的客户端版本(client --->orace 12c db )

SQLNET.ALLOWED_LOGON_VERSION_CLIENT:控制12c数据库可以连到哪些版本的数据库(orace 12c db  --->其它版本的oracle db),例如:控制通过DB LINK可连接到哪些版本的oracle库。

所以,该案例中主要起作用的是需要配置SQLNET.ALLOWED_LOGON_VERSION_SERVER。

数据库的认证协议并不是数据库软件的版本, 对应的是dba_users.password_versions的值, 12.2 默认只支持11g 和12c的密码版本,如在11g中的密码版本10g和11g组合, 12c中密码版本是11g, 12c的组合,如果想使用10g的密码版本需要修改sqlnet.allowed_logon_version_server 到11或更低的值。

sqlnet.allowed_logon_version_server 和sqlnet.allowed_logon_version_client配置的值是最小认证版本的值,如数据库是12c, sqlnet.allowed_logon_version_server=10, 那10g,11g,12c的client都可以访问,包含10g对应的JDBC驱动包。 sqlnet.allowed_logon_version_server是配置在数据库服务器(被访问端)的DB $ORACLE_HOME的sqlnet.ora(不是GI HOME),在12.2版本有效值应该是8,9,10,11,12,12A,

特别需要注意:

(1)如果是RAC,因为RAC是使用grid的监听器,因此很多人以为是在“/u02/app/12.1.0/grid/network/admin/sqlnet.ora” 加“SQLNET.ALLOWED_LOGON_VERSION_SERVER=8”,其实这是错的,而是仍然在$ORACLE_HOME/network/admin/sqlnet.ora加“SQLNET.ALLOWED_LOGON_VERSION_SERVER=8”

(2)上面所说的版本,是指dba_users.password_versions的版本。

在Oracle 12c中,虽然在sqlnet.ora加SQLNET.ALLOWED_LOGON_VERSION=8可以解决问题,但由于这个参数在12c已经废弃了,而是用SQLNET.ALLOWED_LOGON_VERSION_CLIENT和SQLNET.ALLOWED_LOGON_VERSION_SERVER代替。如果继续使用该

另外,对于JDBC的报错也可以下载支持oracle12c的jdbc驱动jar包。链接:http://www.oracle.com/technetwork/database/features/jdbc/jdbc-drivers-12c-download-1958347.html

注:本地jdk版本为1.6,则下载ojdbc6.jar;jdk版本为1.7,则下载ojdbc7.jar

如下图所示:

也可以在在ORACLE安装目录lib库目录下载ojdbc7.jar包,然后把这个ojdbc7.jar加载到开发环境中。

 1 [oracle@orcltest dbhome_1]$ ll $ORACLE_HOME/jdbc/lib/ojdbc*2 3 -rw-r--r-- 1 oracle oinstall 3447295 Aug 23  2011 /u02/app/oracle/product/11.2.0/dbhome_1/jdbc/lib/ojdbc5dms_g.jar4 5 -rw-r--r-- 1 oracle oinstall 2617019 Aug 23  2011 /u02/app/oracle/product/11.2.0/dbhome_1/jdbc/lib/ojdbc5dms.jar6 7 -rw-r--r-- 1 oracle oinstall 3425922 Aug 23  2011 /u02/app/oracle/product/11.2.0/dbhome_1/jdbc/lib/ojdbc5_g.jar8 9 -rw-r--r-- 1 oracle oinstall 2095661 Aug 23  2011 /u02/app/oracle/product/11.2.0/dbhome_1/jdbc/lib/ojdbc5.jar
10
11 -rw-r--r-- 1 oracle oinstall 4486070 Aug 23  2011 /u02/app/oracle/product/11.2.0/dbhome_1/jdbc/lib/ojdbc6dms_g.jar
12
13 -rw-r--r-- 1 oracle oinstall 3327656 Aug 23  2011 /u02/app/oracle/product/11.2.0/dbhome_1/jdbc/lib/ojdbc6dms.jar
14
15 -rw-r--r-- 1 oracle oinstall 4462913 Aug 23  2011 /u02/app/oracle/product/11.2.0/dbhome_1/jdbc/lib/ojdbc6_g.jar
16
17 -rw-r--r-- 1 oracle oinstall 2714016 Aug 23  2011 /u02/app/oracle/product/11.2.0/dbhome_1/jdbc/lib/ojdbc6.jar
18
19 [oracle@orcltest dbhome_1]$

1.3.4  官方文档及MOS的解释

http://docs.oracle.com/database/121/UPGRD/deprecated.htm#UPGRD60010

ORA-28040: No matching authentication protocol相关推荐

  1. 【故障处理】ORA-28040: No matching authentication protocol

    [故障处理]ORA-28040: No matching authentication protocol 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者 ...

  2. plsql连接oracle后查询报错,plsql developer连接oracle 12.2报错 ora-28040 No matching authentication protocol...

    使用plsql连接时,发现报ora-28040 no matching authentication protocol 赶紧查了查mos,原来在默认情况下oracle12.2对客户端版本有限制, 解决 ...

  3. Linux操作Oracle(7)—连接Oracle12C 或 OracleRac 出现 ORA-28040: No matching authentication protocol,没有匹配的验证协议

    目录 问题描述: 解决方法: Oracle12c客户端+PLSQL12免注册版下载地址: 问题描述: 之前安装的Oracle11g客户端.PLSQL11,链接Oracle数据库都正常,但是配置了一个O ...

  4. oracle创建实例ora28040,【案例】Oracle报错ORA-28040 No matching authentication

    天萃荷净 运维DBA反映在连接Oracle数据库时报错:ORA-28040: No matching authentication protocol,结合MOS分析原因为多版本共存导致 电脑上面安装了 ...

  5. 基于局域网的扩展认证协议EAPOL Extensible Authentication Protocol

    EAP是Extensible Authentication Protocol的缩写. EAP是一个普遍使用的认证机制,它常被用于无线网络或点到点的连接中.EAP不仅可以用于无线局域网,而且可以用于有线 ...

  6. Mysql 解决1251- Client does not support authentication protocol requested by server...的问题

    一.问题描述 使用Navicat客户端连接本地mysql,报错:1251- Client does not support authentication protocol requested by s ...

  7. Navicat 远程连接docker容器中的mysql 报错1251 - Client does not support authentication protocol 解决办法

    Navicat 远程连接docker容器中的mysql 报错1251 - Client does not support authentication protocol 解决办法 1).容器中登录my ...

  8. Navicat for MySQL 连接 Mysql 8.0.11 出现1251- Client does not support authentication protocol 错误

    1.心路历程 第一次全栈发车试运行,选最陌生的站上车,小本本记下路上的坎坷. 1.安装了MySQL数据库(腾讯的下载连接,比官网快,亲测有用): 2.下载安装Navicat:下载.安装参考:MySQL ...

  9. Client does not support authentication protocol requested by server;

    Navicat连接MySQL Server8.0版本时出现Client does not support authentication protocol requested  by server:解决 ...

最新文章

  1. 微服务项目用了几台服务器,微服务部署运维
  2. BAT架构师分享之:大型网站技术架构
  3. (转)当别人努力的时候,你在做什么?
  4. linux 命令大全_干货分享:Linux命令大全
  5. 如何查询spark版本_掌握Spark SQL中的查询执行
  6. C++ WINDOWS下 wchar_t *和char * 相互转化总结篇
  7. 【转】移动前端工作的那些事---UE/UI架构原型搭建和前端设计之UE架构原型搭建...
  8. 利用TTL转USB串口在两台PC机间进行文件传输
  9. linux ftp无法打开文件,Linux下vsftp匿名用户无法上传文件
  10. Solidity 投票案例
  11. 在VMware WorkStation中安装Windows Server 2016
  12. 2022阿里巴巴技术类笔试题分享(含答案)
  13. Centos7为yum设置代理
  14. “富贵树”身价十五万,湖南小伙返乡创业,一年卖出800多万
  15. 丢手帕问题 java_java基于双向环形链表解决丢手帕问题的方法示例
  16. 讯搜 配置mysql_迅搜使用指南
  17. 手机锂电池充电什么时候好?
  18. 如何从Spark官网下载开发版本
  19. MicrobiomeAnalyst 文件配置及使用
  20. 传拼多多将上线“多多国际” 回应:该业务早就存在

热门文章

  1. 2004.09.15,Wed - 打印机和上网?
  2. vuex---$store案例、getters配置项、引入mapState、mapGettes、mapActions、mapMutations
  3. 怎样设计淘宝天猫这种成功而有价值大数据可视化?
  4. PMC Flashtec + Memblaze PBlaze 4 = 性能惊人的NVM Express SSD!
  5. 「事件驱动架构」使用GoldenGate创建从Oracle到Kafka的CDC事件流
  6. 使用科大迅飞SDK进行语音合成出现sh: 1: mplayer: not found
  7. 多线程与高并发(马士兵)
  8. amos看拟合度在哪里看_AMOS分析技术:模型整体拟合度指标
  9. 计算机软件测试方法及应用实践论文,计算机软件测试技术研究论文(2)
  10. 从《我的兄弟叫顺溜》看技术人才的职业规划