Oracle 使用DBLike進行數據庫的控數據庫讀取

當用戶要跨本地數據庫,訪問另一個數據庫表中的數據時,本地數據庫中必須建立了遠程數據庫的dblink,經過dblink本地數據庫能夠像訪問本地數據庫同樣訪問遠程數據庫表中的數據。下面講介紹如何在本地數據庫中建立dblink.sql

  建立dblink通常有兩種方式,不過在建立dblink以前用戶必須有建立dblink的權限。想知道有關dblink的權限,以sys用戶登陸到本地數據庫:數據庫

  select * from user_sys_privs toracle

  where t.privilege like upper('%link%');ide

  1 SYS CREATE DATABASE LINK NO測試

  2 SYS DROP PUBLIC DATABASE LINK NOget

  3 SYS CREATE PUBLIC DATABASE LINK NOtest

  能夠看出在數據庫中dblink有三種權限CREATE DATABASE LINK(所建立的dblink只能是建立者能使用,別的用戶使用不了),CREATE PUBLIC DATABASE LINK(public表示所建立的dblink全部用戶均可以使用),DROP PUBLIC DATABASE LINK。登錄

  在sys用戶下,把CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK權限授予給你的用戶配置

  grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to scott;List

  而後以scott用戶登陸本地數據庫

  1.建立dblink的第一種方式,是在本地數據庫tnsnames.ora文件中配置了要遠程訪問的數據庫。

  create public database link

  to_bylw connect to scott identified by tiger using 'bylw';

  其中to_bylw是你建立的dblink名字,bylw是遠程數據庫的實例名,scott/tiger是登陸到遠程數據庫的用戶/密碼。而後在本地數據庫中經過dblink訪問遠程數據庫'bylw'中scott.tb_test表,sql語句以下所示

  select * from scott.tb_test@to_bylw;

  2.建立dblink的第二種方式,是在本地數據庫tnsnames.ora文件中沒有配置要訪問的遠程數據庫,

  create database link to_test

  connect to scott identified by tiger

  using '(DESCRIPTION =

  (ADDRESS_LIST =

  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521))

  )

  (CONNECT_DATA =

  (SERVER = DEDICATED)

  (SERVICE_NAME = bylw)

  )

  )';

  第二種是把第一種配置在tnsnames.ora文件中的信息,直接放在建立dblink語句後面。第一種狀況tnsnames.ora文件中信息以下:

  bylw =

  (DESCRIPTION =

  (ADDRESS_LIST =

  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521))

  )

  (CONNECT_DATA =

  (SERVER = DEDICATED)

  (SERVICE_NAME = bylw)

  )

  )

在實際應用中,使用第二種方式比多,同時結合oracle的同義詞進行數據庫的處理

首先建立db like:

  create  database  link db
  connect to user1 identified by user1
 
  using '(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.5)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = devdb)
    )
  )';
測試:  select * from a@db

建立同義詞:   create public synonym a for a@db

測試:select * from a

相關文章
相關標籤/搜索