对于Oracle12c数据库,通过sqlpl掼鸿乡羰us可以连接,但通过Javajdbc的方式无法连接,报ORA-01017错误洁船诼抨码,即无效的账号或密码。其原因是因为jdbc驱动程序的问题,本篇经验就分享一下如何解决这个问题。
工具/原料
DBVisualizer
Oracle12c
方法/步骤
1、sqlplus可以通过账号密码正常登陆Oracle
2、通过oracle客户端软件dbvisualizer就无法连接,报ORA-01017的错误
3、这个问题是因为or瞢铍库祢acle12c允许的密码校验策略将较低版本数据库驱动使用的密码策略排除掉了,惚肋醚汊即如果你使用较低版本的oraclejdbc驱动,正确的密码也无法通过校验。图示,查看当前使用的jdbc驱动版本。
4、ojdbc6.jar是为JDK1.6适配的驱动,ojdbc8是为JDK1.8即以上版本准备的驱动,因此将客户端软件中使用的ojdbc6.jar替换为ojdbc8.jar。
5、再次尝试通过客户端连接数据库,这次连接成功了。
6、总结:随着oracle版本的升级,其内部的账号密码的校验策略也会逐步升级,同样一些老的校验策略默认就不变支持了,此时如果还使用只支持这种老的策略的驱动去连接数据库,就会被拒绝!