源數據庫: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這顯示指定密碼大小寫(推薦)。
--------------------- 作者:密斯特羅 來源:CSDN 原文:https://blog.csdn.net/mrluoe/article/details/8766786 版權聲明:本文為博主原創文章,轉載請附上博文鏈接!