11g新密码策略对数据库链的影响

来源于:http://www.svn8.com/sql/Oracle/2009110612373.html

 

11g新密码策略对数据库链的影响 Oracle的11g对密码策略进行了修改,密码开始区分大小写了。低版本数据库的数据库链在建立的时候需要额外的注意。

看一个简单的例子:
SQL> CONN NDMAIN/NDMAIN@172.0.2.62/RAC11G_S.US.ORACLE.COM
ERROR:
ORA-01017: invalid username/password; logon denied

SQL> CONN NDMAIN/ndmain@172.0.2.62/RAC11G_S.US.ORACLE.COM已连接。
上面这个例子说明了两个问题,一个是11g已经开始区分密码的大小写了,二是目标数据库的密码为小写。
下面在一个10g的数据库上建立目标数据库的数据库链:
SQL> CONN TEST/TEST已连接。
SQL> SELECT * FROM V$VERSION;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
PL/SQL Release 10.2.0.3.0 - Production
CORE 10.2.0.3.0 Production
TNS for Solaris: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production
SQL> CREATE DATABASE LINK RAC11G_S.US.ORACLE.COM CONNECT TO NDMAIN IDENTIFIED BY ndmain USING '172.0.2.62/RAC11G_S.US.ORACLE.COM';

参考资料:www.svn8.com


数据库链接已创建。
SQL> SELECT * FROM GLOBAL_NAME@RAC11G_S.US.ORACLE.COM;
SELECT * FROM GLOBAL_NAME@RAC11G_S.US.ORACLE.COM
*第 1 行出现错误:
ORA-01017: invalid username/password; logon denied
ORA-02063: 紧接着 line (起自 RAC11G_S.US.ORACLE.COM)
这是由于10g及以前版本还不区分密码的大小写,因此即使创建数据库链的时候给出了小写的密码,Oracle也不会做特别的处理,而Oracle在处理 SQL的时候会将所有字符串以外的字符转化为大写,此后数据库链会通过大写的密码来连接远端数据库,结果就和上面显示的一样。
这是需要人为的在小写密码处添加引号:
SQL> DROP DATABASE LINK RAC11G_S.US.ORACLE.COM;
数据库链接已删除。
SQL> CREATE DATABASE LINK RAC11G_S.US.ORACLE.COM CONNECT TO NDMAIN IDENTIFIED BY "ndmain" USING '172.0.2.62/RAC11G_S.US.ORACLE.COM';
数据库链接已创建。
SQL> SELECT * FROM GLOBAL_NAME@RAC11G_S.US.ORACLE.COM;
GLOBAL_NAME
--------------------------------------------------------------------------------

Bbs.Svn8.Com


RAC11G_L.US.ORACLE.COM
而11g由于添加了密码策略,因此在建立数据库链的时候也做了相应的处理,不需要用户去添加引号了:
SQL> CONN YANGTK/yangtk@172.0.2.61/TEST11G.NETDB已连接。
SQL> SELECT * FROM V$VERSION;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
PL/SQL Release 11.1.0.6.0 - Production
CORE 11.1.0.6.0 Production
TNS for Solaris: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production
SQL> CREATE DATABASE LINK RAC11G_S.US.ORACLE.COM CONNECT TO NDMAIN IDENTIFIED BY ndmain USING '172.0.2.62/RAC11G_S.US.ORACLE.COM';
数据库链接已创建。
SQL> SELECT * FROM GLOBAL_NAME@RAC11G_S.US.ORACLE.COM;
GLOBAL_NAME
--------------------------------------------------------------------------------
RAC11G_L.US.ORACLE.COM
对于低版本数据库连接11g数据库的时候,需要注意这个密码大小写的问题。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值