dblink(Database Link)資料庫連結顧名思義就是資料庫的連結,就像電話線一樣,是一個通道,當我們要跨本地資料庫,通路另外一個資料庫表中的資料時,本地資料庫中就必須要建立遠端資料庫的dblink,通過dblink本地資料庫可以像通路本地資料庫一樣通路遠端資料庫表中的資料。
建立dblink的文法如下:
CREATE [SHARED] [PUBLIC] database link link_name
[CONNECT TO [user] [current_user] IDENTIFIED BY [password]
[AUTHENTICATED BY user IDENTIFIED BY password]
[USING 'connect_string']
說明:
- 權限:建立資料庫連結的帳号必須有CREATE DATABASE LINK或CREATE PUBLIC DATABASE LINK的系統權限,用來登入到遠端資料庫的帳号必須有CREATE SESSION權限。這兩種權限都包含在CONNECT角色中(CREATE PUBLIC DATABASE LINK權限在DBA中)。一個公用資料庫連結對于資料庫中的所有使用者都是可用的,而一個私有連結僅對建立它的使用者可用。由一個使用者給另外一個使用者授權私 有資料庫連結是不可能的,一個資料庫連結要麼是公用的,要麼是私有的。
- link : 當source端的參數(parameter)GLOBAL_NAMES=TRUE時,link名必須與遠端資料庫的全局資料庫名global_name)相同;否則,可以任意命名。
- current_user使用該選項是為了建立global類型的dblink。在分布式體系中存在多個資料庫的話。如果想要在每一個資料庫中都可以使用同樣的名字來通路資料庫a,那在每個資料庫中都要建立一個到資料庫a的db_link,太麻煩了。是以有這個選項的話你隻要建立一次。所有的資料庫都可以使用這個db_link來通路了。要使用這個特性,必須有oracle nameserver或者ORACLE目錄伺服器。并且資料庫a的參數global_names=true。
- connectstring:連接配接字元串,tnsnames.ora中定義遠端資料庫的連接配接串,也可以在建立dblink的時候直接指定。
- username、password:遠端資料庫的使用者名,密碼。如果不指定,則使用目前的使用者名和密碼登入到遠端資料庫,當建立connected user類型的dblink時,需要如果采用資料字典驗證,則需要兩邊資料庫的使用者名密碼一緻。
dblink是一個指針,它定義了從資料庫伺服器到另一個資料庫伺服器的單向通信路徑。連結指針實際上定義為資料字典表中的一個條目。要通路該連結,必須連接配接到包含資料字典項的本地資料庫。
dblink是單向的,一個用戶端連接配接到本地資料庫可以使用連結存儲在資料庫通路資訊在遠端資料庫B,但使用者連接配接到資料庫B不能使用同樣的連結來通路資料在資料庫A如果本地使用者資料庫B想通路資料庫資料,然後他們必須定義一個連結存儲在資料庫的資料字典。
dblink允許本地使用者通路遠端資料庫上的資料。要實作此連接配接,分布式系統中的每個資料庫必須在網絡域中具有唯一的全局資料庫名。全局資料庫名稱唯一地辨別分布式系統中的資料庫伺服器。
資料來源:
Oracle DBLINK 簡單使用
https://www.cnblogs.com/wangyong/p/6354528.html建立dblink(database link)
https://blog.csdn.net/bisal/article/details/26730993PostgreSQL: Documentation: 10: dblink
https://www.postgresql.org/docs/10/contrib-dblink-function.htmlDatabase Links
https://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_concepts002.htm#ADMIN12084