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