Oracle中建立dblink的方法

2021-07-22 13:02:03 字數 1733 閱讀 2503

當使用者要跨本地資料庫,訪問另外乙個資料庫表中的資料時,本地資料庫中必須建立了遠端資料庫的dblink,通過dblink本地資料庫可以像訪問本地資料庫一樣訪問遠端資料庫表中的資料。下面講介紹如何在本地資料庫中建立dblink.

建立dblink一般有兩種方式,不過在建立dblink之前使用者必須有建立dblink的許可權。想知道有關dblink的許可權,以sys使用者登入到本地資料庫:

select * from user_sys_privs t

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

1 sys create database link no

2 sys drop public database link no

3 sys create public database link no

可以看出在資料庫中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;

然後以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中如何建立dblink

當使用者要跨本地資料庫,訪問另外乙個資料庫表中的資料時,本地資料庫中必須建立了遠端資料庫的dblink,通過dblink本地資料庫可以像訪問本地資料庫一樣訪問遠端資料庫表中的資料。下面講介紹如何在本地資料庫中建立dblink.建立dblink一般有兩種方式,不過在建立dblink之前使用者必須有建立...

oracle中如何建立dblink

當使用者要跨本地資料庫,訪問另外乙個資料庫表中的資料時,本地資料庫中必須建立了遠端資料庫的dblink,通過dblink本地資料庫可以像訪問本地資料庫一樣訪問遠端資料庫表中的資料。下面講介紹如何在本地資料庫中建立dblink.建立dblink一般有兩種方式,不過在建立dblink之前使用者必須有建立...

oracle中dblink的建立

database link是定義乙個資料庫到另乙個資料庫的路徑的物件,database link允許你查詢 遠端表及執行遠端程式。在任何分布式環境裡,database都是必要的。另外要注意的是database link是單向的連線。使用另乙個資料庫時要如 表名 db209 查詢時,如果表中有blob...