oracle之使用dblink操作远程数据库

dblink(Database Link)数据库链接顾名思义就是数据库的链接 ,就像电话线一样,是一个通道,当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。

1.创建dblink一般有两种方式

        一种是配置本地连接,在本地数据库tnsnames.ora文件中配置了要远程访问的数据库;一种是直接建立连接。个人喜欢第二种,也建议大家使用第二种方式,这样就不需要去改tnsnames.ora文件。

2.直接建立连接

       创建dblink:

CREATE PUBLIC DATABASE LINK TO_ACCOUNT CONNECT TO ACCOUNT IDENTIFIED BY ACCOUNT 
USING '(DESCRIPTION =
     (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.20.212)(PORT = 1521))
     )
     (CONNECT_DATA =
(SERVICE_NAME = ORCL)
     )
)'
     查看dblink:

select * from dba_db_links;
     删除dblink:

drop PUBLIC database link TO_ACCOUNT; 

如果你创建的不是公用dblink那么删除dblink的语句就不要PUBLIC即:

drop database link TO_ACCOUNT; 

3.dblink类型及拥有者

     Private:创建dblink的user拥有该dblink
     Public:Owner是PUBLIC.
     Global:Owner是PUBLIC.

4.废话

     如果你创建dblink的时候报错说没有权限,就到远程的数据库上执行:

grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to ACCOUNT;
     给账户ACCOUNT授予建立公用dblink的权限,授权之后登录 ACCOUNT账户可以查看权限:

select * from user_sys_privs t
  where t.privilege like upper('%link%');
     个人建议不要上来就搞什么授权,你先建立dblink试试,要是不行再执行授权SQL。

参考文档:http://baike.baidu.com/link?url=kIcyNWdU4gq1tRyxVU0msxNJKMKR1FNkY-7Aog9MFfWQwlchQ9_G6TWWbAjtClwHHc4CRB4CPvg7132tyEOaTq#2_1

你可能感兴趣的:(oracle)