Oracle11g密码区分大小写导致database link无法连接
Oracle11g的密码默认是区分大小写的,该特性通过初始化参数sec_case_sensitive_logon控制,默认TRUE表示区分大小写。但是Oracle11g之前的版本密码都是不区分大小写的,所以在Oracle10g等以前版本创建到Oracle11g的databaselink时,可能会碰到以下问题:10g> create database link oracle11g2 connect to ning identified by ning3 using ’11g’;
Database link created.
10g> select * from v$version@oracle11g;select * from v$version@oracle11g*ERROR at line 1:ORA-01017: invalid username/password; logon deniedORA-02063: preceding line from ORACLE11G
密码肯定是正确的
10g> conn ning/ning@11g;Connected.
11g>出现这个问题,应该是在10g中创建databaselink的时候密码是以全部大写的方式使用的,但是11g中的用户密码实际上是小写的。在以前版本中由于不区分大小写,所以没有问题。到了11g问题就出现了,密码不对^_^
解决办法
1.在创建databaselink是将用户名和密码都以双引号引起来,这样密码就是安装输入字符使用的,不会转换成大写
10g> create database link oracle11g22 connect to “ning” identified by “ning”3 using ’11g’;
Database link created.
10g> select * from v$version@oracle11g2;
BANNER——————————————————————————–Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 –ProductionPL/SQL Release 11.1.0.6.0 – ProductionCORE 11.1.0.6.0 ProductionTNS for Linux: Version 11.1.0.6.0 – ProductionNLSRTL Version 11.1.0.6.0 – Production2.停用Oracle11g区分密码大小写的特性,但是不推荐
11g>alter system set sec_case_sensitive_logon=false;
System altered
10g> select * from v$version@oracle11g;
BANNER——————————————————————————–Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 –ProductionPL/SQL Release 11.1.0.6.0 – ProductionCORE 11.1.0.6.0 ProductionTNS for Linux: Version 11.1.0.6.0 – ProductionNLSRTL Version 11.1.0.6.0 – Production