ORA-01005 vs ORA-28040

33 篇文章 0 订阅
25 篇文章 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)解决

  • 代码中删除System.setProperty("oracle.jdbc.thinLogonCapability","o3");。蛤?
  • 或者在%Oracle_Home\product\11.2.0\dbhome_1\NETWORK\ADMIN\sqlnet.ora中添加:
    SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
    SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ORA-28040Oracle数据库中的一个错误代码,涉及到Kettle组件。Kettle是一款强大的开源数据集成工具,常用于数据抽取、转换和加载等任务。当出现ORA-28040错误时,一般是因为数据库用户的账号被锁定。 ORA-28040错误提示表示由于用户连续的登录失败次数超过了数据库所设置的阈值,导致数据库自动锁定了该用户账号。这是为了保证数据库的安全性而设定的一种机制。 要解决ORA-28040错误,可以尝试以下步骤: 1. 确认数据库用户账号是否被锁定:可以通过登陆数据库管理工具,如SQL*Plus,使用管理员权限登录,并执行查询语句“SELECT * FROM DBA_USERS WHERE USERNAME=’用户名’;”,其中“用户名”为受影响的账号名。如果查询结果中“ACCOUNT_STATUS”一列显示为“LOCKED”即表示此账号被锁定。 2. 解锁用户账号:如果账号被锁定,可以执行以下命令进行解锁: ALTER USER 用户名 ACCOUNT UNLOCK; 3. 重置密码:如果解锁之后还是无法正常登录,可能是由于密码错误导致的。可以执行以下命令重置密码: ALTER USER 用户名 IDENTIFIED BY "新密码"; 4. 检查外部因素:如果以上解决方法仍然无效,可能是由于其他因素导致的错误。可以检查网络连接是否正常,数据库实例是否正常运行等。 需要注意的是,对于ORA-28040错误,解决方法可能因具体情况而异。建议在遇到此类问题时及时联系数据库管理员或相关技术支持人员,以便得到更准确和及时的解决方案。 ### 回答2: ORA-28040Oracle数据库的一个错误代码,它与Kettle(即Pentaho Data Integration)工具的连接配置有关。当使用Kettle连接到Oracle数据库时,如果设置的用户名或密码不符合Oracle数据库的密码策略要求,就会出现ORA-28040错误。 ORA-28040错误的原因是Oracle数据库设置了密码策略,要求密码必须符合一定的复杂性要求,如密码长度、包含大小写字母、数字和特殊字符等。如果Kettle工具中使用的用户名或密码不满足这些要求,就会导致ORA-28040错误的发生。 要解决ORA-28040错误,可以采取以下几个步骤: 1.检查Kettle连接中使用的用户名和密码是否符合Oracle数据库的密码策略要求。确保密码长度够长,包含大小写字母、数字和特殊字符。 2.如果密码不符合要求,可以尝试修改密码,使其符合Oracle数据库的密码策略要求。 3.如果无法修改密码,可以联系数据库管理员(DBA)了解密码策略的具体要求,并协商解决方案。DBA可以通过修改数据库密码策略或临时更改密码,以允许Kettle连接到数据库。 总之,ORA-28040错误是由于Kettle连接Oracle数据库时使用的用户名或密码不符合数据库密码策略要求所导致的。通过检查和修改密码,或与数据库管理员协商解决方案,可以解决这个问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值