共計 1718 個字符,預計需要花費 5 分鐘才能閱讀完成。
這篇文章主要介紹了 DBLINK 怎么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。
DBLINK 詳解
1. 創建 dblink 語法:
CREATE [PUBLIC] DATABASE LINK link
CONNECT TO username IDENTIFIED BY password
USING‘connectstring’
說明:
1) 權限:創建數據庫鏈接的帳號必須有 CREATE DATABASE LINK 或 CREATE PUBLIC DATABASE LINK 的系統權限,用來登錄到遠程數據庫的帳號必須有 CREATE SESSION 權限。這兩種權限都包含在 CONNECT 角色中(CREATE PUBLIC DATABASE LINK 權限在 DBA 中)。一個公用數據庫鏈接對于數據庫中的所有用戶都是可用的,而一個私有鏈接僅對創建它的用戶可用。由一個用戶給另外一個用戶授權私 有數據庫鏈接是不可能的,一個數據庫鏈接要么是公用的,要么是私有的。
2)link : 當 GLOBAL_NAME=TRUE 時,link 名必須與遠程數據庫的全局數據庫名 global_name)相同;否則,可以任意命名。
3)connectstring:連接字符串,tnsnames.ora 中定義遠程數據庫的連接串。
4)username、password:遠程數據庫的用戶名,口令。如果不指定,則使用當前的用戶名和口令登錄到遠程數據庫。
2. 刪除數據庫鏈接的語句:
DROP [PUBLIC] DATABASE LINK zrhs_link
3. 查看已創建的 dblink
select owner,object_name from dba_objects where object_type= DATABASE LINK
4.dblink 的引用:
[user.]table|view@dblink
如:
SELECT * FROM worker@zrhs_link;
SELECT * FROM camel.worker@zrhs_link ;
5. 創建同義詞:
對于經常使用的數據庫鏈接,可以建立一個本地的同義詞,方便使用:
CREATE SYNONYM worker_syn FOR worker@zrhs_link;
6. 創建遠程視圖:
CREATE VIEW worker AS SELECT * FROM worker@zrhs_link where…;
現在本視圖可與本地數據庫中的任何其它視圖一樣對待,也可以授權給其它用戶訪問此視圖,但該用戶必須有訪問數據庫鏈接的權限。
其他:
修改 GLOBAL_NAME 的方法:
1. 在遠程數據庫的 init.ora 文件中將 global_names 設為 false。
或者
2. 用 sys 用戶執行如下語句:ALTER SYSTEM SET GLOBAL_NAME=TRUE/FALSE;
修改后重新啟動數據庫設置才能生效。
數據庫全局名稱可以用以下命令查出:SELECT * FROM GLOBAL_NAME;
===== dblink 實戰 ======
1.dblink 分為公有和私有兩類。
公有 dblink 使用 public 修飾關鍵字。在 create 和 drop 的時候都需要使用 public 關鍵字。
公有 dblink 對所有人開放,在該 dblink 之上創建的同義詞也會隨之對所有人開放。(測試并確認,不過測試是在一個實例多個用戶之間進行)
私有 dblink 只有創建者可以訪問,其上的同義詞不能被其他用戶訪問。需為用戶創建視圖,并將視圖授權給所需用戶后,用戶才可訪問該視圖。
另外,不能將帶有 dblink 的同義詞直接授權給用戶。否則報錯,其等價于:
grant select on table1@user1 to user2 *
ERROR at line 1:
ORA-02021: DDL operations are not allowed on a remote database
2. 創建 dblink 時,可以使用連接字符串(與 tnsname.ora 中的),效率較高。
感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享的“DBLINK 怎么用”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業資訊頻道,更多相關知識等著你來學習!