Oracle10g到Oracle11g建dblink是使用者的大小寫

kakaxi9521發表於2017-03-07
今天在建立dblink後檢查是否能透過dblink查詢資料時一直報ORA-01017、ORA-02063建立dblink報錯:ORA-01017、ORA-02063解決
 
一、建立dblink 原始語句:
create public database link db_lsxy
connect to lsxy  identified by lsxy
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.xxx.xxx.xxx)(PORT = 2261)))(CONNECT_DATA = (SERVICE_NAME = serName)))';
注意:這裡使用者密碼都是小寫的。
二、建立dblink 後使用時提示如下錯誤:
ORA-01017: invalid username/password; logon denied 
ORA-02063: preceding line from
三、問題分析:
        根據ORA-01017的提示是連線到另一方的使用者密碼錯誤,於是直接使用配置的使用者密碼(lsxy/lsxy)登入發現正常登入,進一步的檢視建立好後的dblink 語句,其中使用者名稱都轉化為了大寫,由此猜測密碼是否也被轉化為了大寫從而導致密碼錯誤。
        根據猜測百度了下,確實有這種情況。當9i或10g的版本的Oracle資料庫連線11g的版本時,會自動將密碼轉化為大寫。
四、解決辦法:
   (方法1、如果11g的資料庫使用者的密碼是小寫字母,將其改成大寫,然後再去用9i去連線,這個方法太過粗鄙影響也比較大不考慮使用。
   (方法2、將密碼用雙引號引起來。如 identified by “jxunicom_sale”
採用方法2,我們將dblink 的建立語句稍微改寫即可,如下:
create public database link DB_LSXY
connect to lsxy  identified by “lsxy”
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.xxx.xxx.xxx)(PORT = 2261)))(CONNECT_DATA = (SERVICE_NAME = serName)))';

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21374452/viewspace-2134853/,如需轉載,請註明出處,否則將追究法律責任。

相關文章