dblink的创建和使用总结

oracle中的database link是定义一个数据库到另一个数据库的路径的对象,database link允许你查询远程表和执行远程程序。在任何分布式环境里,dblink都是必要的,另外注意database link是单向的连接。在创建database link的时候,oracle在数据字典中存储了相关的database link的信息,在使用database link的时候,oracle再通过oracle net用户预先定义好的连接信息访问相应的远程数据库来完成相应的工作。

oracle database link可分为下面三类:

(1)private:创建的是用户级别的dblink,只有创建该dblink的用户才可以使用这个dblink来访问远程的数据库,同时也只有该用户可以删除这个dblink。

(2)public:创建的是数据库级别的dblink,本地数据库中所有的用户数据库访问权限的用户或者pl/sql程序都能使用这个dblink。

(3)global:创建的是网络级别的dblink,这是对于oracle network而言的。

下面我们来创建dblink

1.创建dblink需要的权限:
在创建database link之前,我们需要判断,登陆的用户是否具备创建database link 的权限,所以我们执行以下的语句(用zhangjk用户登陆orcl):
判断,登陆的用户是否具备创建database link 的权限
– 查看zhangjk用户是否具备创建database link 权限
select * from user_sys_privs where privilege like upper(’%DATABASE LINK%’) AND USERNAME=‘ZHANGJK’;
如果查询有返回行,则表示具备创建database link权限,否则,则需要使用sys登陆orcl为ZHANGJK用户赋予创建权限

-- 给zhangjk用户授予创建dblink的权限
grant create public database link to zhangjk;

再执行上面查看是否具备权限的sql语句,如果有返回行,表示,ZHANGJK这个用户已经具备创建database link的权限
2.创建database link
我所了解到的创建方式有两种:
1)通过pl/sql developer图形化创建
在这里插入图片描述
1.右键新建new
2.勾选公共public如果不勾选默认当前数据库
3.链接数据库orcl2填写用户名和密码
4.应用apply

2)通过sqlplus中的sql语句创建

-- 注意一点,如果密码是数字开头,用“”括起来
create public database link TESTLINK2 connect to ZHANGJK identified by "123456" USING 'ORCL2'

这样,就完成了简单database简单的创建
3.操作

-- 最简单的用法
SELECT * FROM table_name@database_link;
-- 不想让别人知道database link名字的时候,可以使用同义词包装一下
CREATE SYNONYM table_name for table_name@database_link;
SELECT * FROM table_name;
-- 也可以建立一个视图来封装
CREATE VIEW table_name_v AS SELECT * FROM table_name@database_link;

4.删除dblink

-- 删除public类型的dblink
DROP PUBLIC DATABASE LINK dblink_name;
-- 删除private类型的dblink,只有创建者自己能删
DROP DATABASE LINK dblink_name;
  • 13
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值