Oracle環境:oracle 10.2.0.1 創建的 public dblink 連接oracle 11.2.0.3
ORA-01017: invalid username/password; logon denied ORA-02063: preceding line from
一.創建dblink
create public database link dmz63
connect to xyy identified by xyy
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = 10.0.0.1)(HOST = 192.xxx.xxx.xxx)(PORT = 2261)))(CONNECT_DATA = (SERVICE_NAME = xyy)))';
二.創建dblink 後使用時提示如下錯誤:
select * from dual@dmz63
報錯如下:
ORA-01017: invalid username/password; logon denied
ORA-02063: preceding line from
三、問題分析:
根據ORA-01017的提示是連接到另一方的用戶密碼錯誤,於是直接使用配置的用戶密碼(lsxy/lsxy)登錄數據庫發現正常登錄,進一步的查看建立好後的dblink 語句,其中用戶名都轉化為了大寫,由此猜測密碼是否也被轉化為了大寫從而導致密碼錯誤。
根據猜測百度了下,確實有這種情況。當9i或10g的版本的Oracle數據庫連接11g的版本時,會自動將密碼轉化為大寫。
四、解決辦法:
我們將dblink 的創建語句稍微改寫即可,如下:
將密碼用雙引號引起來
create public database link dmz63
connect to xyy identified by "xyy"
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.1)(PORT = 2261)))(CONNECT_DATA = (SERVICE_NAME = xyy))';