文章目录
- (一)ORA-01005: 给出空密码 登录被拒绝
-
- (1.1)解决
- (二)ORA-28040: 没有匹配的验证协议
-
- (2.1)解决
(一)ORA-01005: 给出空密码 登录被拒绝
在使用OJDBC 23(通过druid)连接某个Oracle实例的某个用户时,报错⚠️:
ORA-01005: null password given; logon denied
密码当然是给了的。
同时该实例(可能是Oracle19)其它用户连接正常。
上网查了一下,好些说需要换低版本驱动。
再查发现这个问题在10年前就有人问起。
继续查可以设置oracle.jdbc.thinLogonCapability=o3
。
似乎是服务端用户设置了什么安全方式,触发了ojdbc thin 驱动的一个古老问题。
(1.1)解决
- 代码中添加
System.setProperty("oracle.jdbc.thinLogonCapability","o3");
。 - 或者回退驱动到
OJDBC 21
(二)ORA-28040: 没有匹配的验证协议
设置oracle.jdbc.thinLogonCapability=o3
后,Oracle19那边正常了。
又偶然发现测试的Oracle12服务器,连接报错⚠️:
ORA-28040: No matching authentication protocol
同样密码是正确的,Toad等工具正常连接,连接Oracle11服务器正常。
(2.1)解决
- 代码中删除
Sys服务器托管网tem.setProperty("oracle.jdbc.thinLogonCapability","o3");
。蛤? - 或者在
%Oracle_Homeproduct11.2.0dbhome_1NETWORKADMINsqlnet.ora
中添加:
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8服务器托管网
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
程序设计语句结构可以分为三大类:顺序结构、分支结构、循环结构。 分支结构,就是程序运行到这里,会通过条件判断,满足某个条件就执行对应的分支。 if条件分支结构分为:单分支、双分支、多分支 单分支 if (条件) { 满足条件执行的语句; } 双分支 if (条…