使用Database Link遇到ORA-01017,ORA-02063

源数据库:Oracle 10.2.0.1(密码大小写不敏感,即不区分)

目标数据库:Oracle 11.2.0.3(密码大小写敏感,即区分)

-----------------------------------------------------------------------

在10g数据库上创建了一个dblink连接到11g数据库,前几天还用的好好的,结果今天再用就不行了:

fxq@ISTAML> select * from tab@oadb;
select * from tab@oadb
                  *
ERROR at line 1:
ORA-01017: invalid username/password; logon denied
ORA-02063: preceding line from OADB

提示是用户密码不对,但是如果在10g数据库上使用用户密码直接登录11g数据库是没问题的:

fxq@oauser> conn oauser/oauser@oadb
Connected.

回顾一下这两天在目标数据库上做过的修改,只是把11g的oauser用户的密码由大写改为了小写,但是我也同时更新了10g上的dblink里面的用户密码为小写,结果今天使用时报错。

想起以前使用较低版本的TOAD连接11g数据库时也会出现提示密码错误的情况,但是在10g环境中却不存在此类错误,原因是用户的密码被这些工具自动地转换为大写所致。于是怀疑在10g数据库中创建的dblink的用户密码也被Oracle自动地转换为大写保存所致,而恰好以前11g这用户密码是大写的,所以之前能使用;而现在修改为小写后,10g数据库这任然还是以大写保存密码,所以由于11g上密码大小写敏感,就出现了用户密码错误的情况。那么使用双引号在dblink的创建语句中明确的指定密码的大小写,如下:

create database link oadb connect to oauser identified by "oauser" using 'oadb';

此时再次验证发现该dblink可用,果然是密码自动大写的问题:

fxq@ISTAML> select * from tab@oadb where 1=2;

no rows selected

总结:改问题由两种解决方法

1、就是把11g的安全设置为密码大小写不敏感(不推荐):

alter system set sec_case_sensitive_logon=false;
2、就是如上例所示,在dblink这显示指定密码大小写( 推荐)。





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值