Oracle|ORA-28040 低版本客户端无法连接Oracle 19C
问题背景
系统Oracle版本从原来的Oracle 11g 升级到 Oracle 19c后,PLSQL客户端连接报错:
ORA-28040: No matching authentication protocol
ORA-28040: 没有匹配的验证协议
问题原因
客户端与服务器端的密码生成版本
dba_users.password_versions不一致导致,升级前客户端密码版本如下:
--查询Oracle服务器端密码版本
select d.password_versions from dba_users d;
解决方案
1、在数据库服务器上找到sqlnet.ora文件
/oracle/app/oracle/product/19.0.0.0/db_1/network/admin/sqlnet.ora
2、如果有直接修改,没有直接创建
3、配置内容: 本地的PLSQL客户端是8.5版本,所以版本号配置为8就行。
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
4、注意事项:
如果没有sqlnet.ora文件可以直接创建 vi sqlnet.ora
如果有不能直接vi 需要使sed -a 命令追加,否则会导致ora文件乱码
添加参数后新无需重启数据库或者监听,但是需要修改用户密码,否则会报错
5、修改用户名密码:
用Oracle 用户以sysdba身份登录sqlplus
sqlplus / as sysdba
修改用户密码
alter user 用户名 identified by 新密码;
end
Open-CV: 太强了吧,但是我现在需要的是创建一个和MySQL中同名的GROUP_CONCAT函数,有点难搞,我们Oracle的VM_CONCAT函数能用,但是要数据库兼容
CSDN-Ada助手: 非常感谢您的分享,Java 异常是开发中经常遇到的问题。我觉得下一篇可以写一篇关于如何处理 Java 异常的技术博文,比如如何捕获和处理异常、常见异常类型及处理方法、最佳实践等。这样的文章对其他 Java 开发者肯定会有很大的帮助。相信会有更多读者关注和学习。期待您的下一篇博客! 为了方便博主创作,提高生产力,CSDN上线了AI写作助手功能,就在创作编辑器右侧哦~(https://mp.csdn.net/edit?utm_source=blog_comment_recall )诚邀您来加入测评,到此(https://activity.csdn.net/creatActivity?id=10450&utm_source=blog_comment_recall)发布测评文章即可获得「话题勋章」,同时还有机会拿定制奖牌。
色皮的老头子: 很细节
Princesk: 楼主太强了,原评论被审核干掉了,在评论下
Java小技巧: 怎么讲