Oracle同義詞和DBLink關聯

                                             步驟相關說明

基於Oracle11g

1.運行環境說明

兩個數據庫(如Oracle 11g,其他也可),以下稱爲目標庫,源庫,創建database link後需要訪問的庫爲目標庫。

    目標庫爲:10.17.0.206:1521/YLZCDR

    源庫爲:10.17.0.42:1521/orcl

1.1賦予權限。

創建database link之前,我們需要判斷,登陸的用戶是否具備創建database link 的權限,所以我們執行以下的語句(用SD_JCPT用戶登陸源庫):

 

-- 查看SD_JCPT用戶是否具備創建database link 權限

SELECT * FROM user_sys_privs WHERE PRIVILEGE LIKE UPPER('%DATABASE LINK%') AND USERNAME='SD_JCPT';

 

如果查詢有返回行,則表示具備創建database link權限,否則,則需要使用sys登陸源庫爲SD_JCPT用戶賦予創建權限。

 

-- wangyong用戶授予創建dblink的權限

GRANT CREATE PUBLIC DATABASE LINK TO SD_JCPT;

此時,再執行上面查看是否具備權限的sql語句,會發現有返回行,表示SD_JCPT這個用戶已經具備創建database link的權限。

1.2 創建database link

 create [public] database link dababaseLinkName [connect to user identified by password] using connectString.

創建一個名爲link2cdrdatabase link

-- 注意一點,如果密碼是數字開頭,用“”括起來

CREATE PUBLIC DATABASE LINK link2cdr CONNECT TO SD_JCPT IDENTIFIED BY "SD_JCPT" USING '10.17.0.206:1521/YLZCDR';

2.爲database link使用同義詞synonym

create [public] synonym [schema.]synonymName for [schema.]object[@dblink] --public表示創建一個公共同義詞,默認是私有的。@dblink表示創建的是遠程數據庫的同義詞,dblink是遠程數據庫鏈接的名稱。

比如針對查詢目標庫所有表使用同義詞

SELECT * FROM tab@Link2cdr;

 

爲其他用戶或者當前用戶的對象建立同義詞,同義詞可以指向表、視圖、過程、函數、包和序列。

CREATE SYNONYM syn_tab FOR tab@Link2cdr;

建立同義詞後,可以使用如下訪問方式:

SELECT t.tname FROM syn_tab t;

 

3.刪除SYNONYM和database link

刪除數據庫鏈接:

drop [public] database link databaseLinkName;
--默認是刪除私有的數據庫鏈接。

刪除同義詞:

Sql代碼 drop [public] synonym [schema.]synonymName
-- public表示刪除一個公用同義詞,如果不指定則默認是刪除私有同義詞,當對應的私有同義詞不存在時則報錯。

-- 刪除database link

DROP PUBLIC DATABASE LINK link2cdr;

-- 刪除同義詞

DROP SYNONYM syn_tab;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章