由于导数据需要,在oracle 11.2.0.1创建dblink访问oracle19c数据库,提示用户密码错误。
当然不会存在创建是 用户密码错误的情况。
报错页面如下
后面猜想是由数据库版本太低问题导致, 11g版本信息如下:
SELECT t.* FROM v$version t;
看看需要访问的目标端版本
查看创建目标端数据库该用户密码支持版本
select t.password_versions from dba_users t where username='NAME';
看到password_versions 只有 11g和12c
处理办法 需要修改目标端19c数据库上 sqlnet.ora 配置文件,不需要重启监听
进入$ORACLE_HOME/network/admin 路径下
添加
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
然后需要重置用户密码
alter user TEST identified by 123456;
再次查看用户密码 password_versions
select t.password_versions from dba_users t where username='NAME';
看到里面 多了10g版本。需要注意的SQLNET.ALLOWED_LOGON_VERSION_SERVER设置为8,但生成的最低版本的password version也是10G。因此也说明,8I,9I的客户端还是无法通过dblink访问 19c
再次测试 dblink
连接成功 ,不用重建dblink·。