用低版本的客户端访问ORACLE 12,无法连接,提示信息为ORA-28040。解决办法如下:
1、把sqlnet.ora文件添加两行(或者修改),修改文件后直接生效,不需要重启服务和监听的:
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
2、这时候客户端的提示信息为ORA-1017:用户名或密码错误。
这时候可以在服务器查询一下用户的PASSWORD_VERSIONS:
SELECT USERNAME, PASSWORD_VERSIONS FROM DBA_USERS
要兼容oracle8以上的客户端,PASSWORD_VERSIONS必须为10g 11G 12C。如果不是,可执行修改密码的语句,执行之后,用户的PASSWORD_VERSIONS会按照sqlnet.ora的配置重新更新。
修改密码的例子如下,system为用户名,123456为密码
alter user system identified by 123456
改密码后,再用上面的查询语句确认一下PASSWORD_VERSIONS,生效的话应该就能从客户端连接服务器了。