Oracle
Allen 2022-10-12 14:02:55 24166 0 0 0 0
Oracle19c,Oracle错误,Oracle 低版本客户端连接19C报错ORA-28040: 没有匹配的验证协议。如使用Oracle11.2客户端连接Oracle 19c的时候,报错:ORA-28040: No matching authentication protocol,ORA-28040: 没有匹配的验证协议

Oracle 低版本客户端连接19C报错ORA-28040: 没有匹配的验证协议

如使用Oracle11.2客户端连接Oracle 19c的时候,报错:

ORA-28040: No matching authentication protocol

ORA-28040: 没有匹配的验证协议

...

问题原因:

原因客户端与服务器段的密码生成版本(dba_users.password_versions)不一致导致

Effect of SQLNET.ALLOWED_LOGON_VERSION_SERVER on Password Version Generatio

...

解决方法:

在数据库服务器上的$ORACLE_HOME/network/admin/sqlnet.ora文件添加相应参数

注:单实例或RAC都是此目录的sqlnet.ora文件

Oracle12c以下版本

SQLNET.ALLOWED_LOGON_VERSION=##

Oracle12c及以上版本

SQLNET.ALLOWED_LOGON_VERSION_SERVER=## 

SQLNET.ALLOWED_LOGON_VERSION_CLIENT=##

两者区别

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

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

添加参数以后无需重启数据库或监听,但需要重置数据库用户密码,否则会报错



===

虽然在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: 用户名/口令无效; 登录被拒绝

可以关闭密码大写敏感,然后重设用户密码。

--关闭密码大写敏感

show parameter sec_case_sensitive_logon

alter system set sec_case_sensitive_logon = false;


Tag: Oracle19c Oracle错误
我也要发一个   ·   返回首页   ·   返回[Oracle]   ·   前一个   ·   下一个
欢迎评论
未登录,
请先 [ 注册 ] or [ 登录 ]
(一分钟即可完成注册!)
返回首页     ·   返回[Oracle]   ·   返回顶部