Oracle 低版本客户端连接19C报错ORA-28040
程序员文章站
2022-05-11 13:48:49
...
问题现象:
如使用Oracle11.2客户端连接Oracle 19c的时候,报错:
ORA-28040: No matching authentication protocol
ORA-28040: 没有匹配的验证协议
问题原因:
原因客户端与服务器段的密码生成版本(dba_users.password_versions)不一致导致
SQLNET.ALLOWED_LOGON_VERSION_SERVER Setting | 8 | 11 | 12 | 12a |
---|---|---|---|---|
Server runs in Exclusive Mode |
No |
No |
Yes |
Yes |
Generate the |
Yes |
Yes |
No |
No |
Generate the |
Yes |
Yes |
Yes |
No |
Generate the |
Yes |
Yes |
Yes |
Yes |
解决方法:
在数据库服务器上的$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库。
添加参数以后无需重启数据库或监听,但需要重置数据库用户密码,否则会报错
ORA-01017: 用户名/口令无效; 登录被拒绝
修改完数据库用户密码后再重新登录,搞定
推荐阅读
-
plsql developer连接oracle 12.2报错 ora-28040 No matching authentication protocol
-
解决连接oracle报错 尝试加载Oracle客户端库时引发BadImageFomatException。如果在安装64位Oracle客户端组件的情况下以32位模式运行,将出现此问题的报错。
-
Oracle客户端简易连接报错ORA-12154,TNS-03505
-
Oracle客户端简易连接报错ORA-12154,TNS-03505
-
Oracle 低版本客户端连接19C报错ORA-28040
-
plsql developer连接oracle 12.2报错 ora-28040 No matching authentication protocol