解决方法:
在数据库服务器上的$ORACLE_HOME/network/admin/sqlnet.ora文件添加相应参数
注:单实例或RAC都是此目录的sqlnet.ora文件 Oracle12c以下版本 SQLNET.ALLOWED_LOGON_VERSION=##
Oracle12c及以上版本
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
然后reload监听,无需重启数据库
ORA-01017错误
如果不行应该就是出现这个错误了
从错误提示看是用户名或者密码错误,其实用户名和密码没有问题。 这里的问题是我们配置的sqlnet对之前已经存在的帐号并没有生效,他们还保持在之前的兼容性。
oracle密码版本写入的时候使用的时11g和12c配置的规则,导致正确密码也无法通过验证。
在sqlnet.ora文件新增了参数后密码虽然支持n(8)以上版本,但是此时由于密码规则事先写入,导致低版本客户端无法识别。
此时只需要alter user_name identified by passwd ;修改一遍即可了。
为了不影响正在运行的业务,一般就是把原来的用户名和密码执行一次,实际密码没有变,但是Oracle本身会重新匹配当前修改后的策略。