ORA-28040 :没有匹配的验证协议(添加sqlnet.ora内容说明,rac不适用)
Posted Running Sun丶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORA-28040 :没有匹配的验证协议(添加sqlnet.ora内容说明,rac不适用)相关的知识,希望对你有一定的参考价值。
虽然在sqlnet.ora加SQLNET.ALLOWED_LOGON_VERSION=8可以解决,但由于这个参数在12c已经废弃了,如果继续使用,会在alert/log.xml无穷无尽的报“Using deprecated
SQLNET.ALLOWED_LOGON_VERSION parameter.”
因此,正确的做法是在$ORACLE_HOME/network/admin/sqlnet.ora加
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
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库。
特别需要注意:
如果是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”
ORA-01017: 用户名/口令无效; 登录被拒绝
问题描述:
使用sqlplus和sql developer可以登录,但是使⽤navicat或程序连接时总是提示ORA-01017: 用户名/口令无效; 登录被拒绝,反复确认输入的用户名和密码,但是仍然提示以上错误。
处理过程:
通过大量网上查找,没找到可行的结果,无意中看到oracle设置密码大小写不敏感,于是怀疑可能和设置的密码中有字母的缘故
修改密码: alter user bsdbank identified by 123456;
或使⽤sql developer,将原密码设置成123456,再使用navicat可以连接,然后再改回原密码,使用navicat也可以连接。可能初次创建用户时会出现这样的问题。
至于出现这种问题后,直接设置大小写不敏感是否能直接解决问题,暂未尝试
补充:oracle设置大小写不敏感步骤
SQL> show parameter sec_case_sensitive_logon
NAME TYPE VALUE
------- ------ ---------
sec_case_sensitive_logon boolean TRUE
SQL> alter system set sec_case_sensitive_logon = false;
系统已更改。
SQL> show parameter sec_case_sensitive_logon
NAME TYPE VALUE
------- ------ -----------
sec_case_sensitive_logon boolean FALSE
以上是关于ORA-28040 :没有匹配的验证协议(添加sqlnet.ora内容说明,rac不适用)的主要内容,如果未能解决你的问题,请参考以下文章
Java 连接oracle时报错,ORA-28040:没有匹配的验证协议
无法在 windows 批处理脚本中运行 sqlplus || ORA-28040: 没有匹配的身份验证协议异常