[Z] DBLINK詳解

          DBLINK詳解
          FROM:>URL:>
          http://space.itpub.net/16860121/viewspace-630043
          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中的),效率較高。

          posted on 2012-08-23 17:19 Dragon4s 閱讀(199) 評論(0)  編輯  收藏 所屬分類: Oracle

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          留言簿

          文章分類(6)

          文章檔案(6)

          最新隨筆

          搜索

          最新評論

          主站蜘蛛池模板: 津市市| 桑植县| 辛集市| 南川市| 萍乡市| 波密县| 青田县| 沂源县| 清镇市| 会泽县| 普兰县| 五家渠市| 靖州| 固安县| 云林县| 左贡县| 汉源县| 洪湖市| 偏关县| 关岭| 遂平县| 牡丹江市| 绥阳县| 安福县| 尼木县| 兰溪市| 古交市| 吉安县| 台湾省| 丹阳市| 鄢陵县| 普格县| 综艺| 铜山县| 衢州市| 旌德县| 胶州市| 岱山县| 海盐县| 建德市| 运城市|