當用戶要跨本地數據庫,訪問另外一個數據庫表中的數據時,本地數據庫中必須創建了遠程數據庫的dblink,通過dblink本地數據庫可以像
當用戶要跨本地數據庫,訪問另外一個數據庫表中的數據時,本地數據庫中必須創建了遠程數據庫的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)
)
)
--------------------------------------分割線 --------------------------------------
Ubuntu 14.04下安裝MySQL
《MySQL權威指南(原書第2版)》清晰中文掃描版 PDF
Ubuntu 14.04 LTS 安裝 LNMP Nginx\PHP5 (PHP-FPM)\MySQL
Ubuntu 14.04下搭建MySQL主從服務器
Ubuntu 12.04 LTS 構建高可用分布式 MySQL 集群
Ubuntu 12.04下源代碼安裝MySQL5.6以及Python-MySQLdb
--------------------------------------分割線 --------------------------------------
本文永久更新鏈接地址:
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com