ORACLE创建与使用dbLink

最近公司业务需求中,需要用到跨库查询,在网上找了些教程之后,完美解决。下面我复述下流程。

机器A,ip地址:192.168.0.111,数据库用户名user1,密码user1pass,
机器B,ip地址:192.168.0.222,数据库用户名user2,密码user2pass。

接下来模拟机器A上登录用户user1,创建机器b上用户user2的dblink:

1.机器A上登录用户user1,查看是否有建立dbLink的权限。

SELECT * FROM USER_SYS_PRIVS WHERE PRIVILEGE LIKE UPPER('%DATABASE LINK%');

如果查询结果为空,则说明没有权限,这个时候需要登录机器A的sys用户给user1用户赋权限。

GRANT CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK TO user1;

注:
dblink有三种权限:
CREATE DATABASE LINK(所创建的dblink只能是创建者能使用,别的用户使用不了)
CREATE PUBLIC DATABASE LINK(public表示所创建的dblink所有用户都可以使用)
DROP PUBLIC DATABASE LINK(删除dbLink)

2.重新查询是否有权限
机器A上登录用户user1,执行查询语句

SELECT * FROM USER_SYS_PRIVS WHERE PRIVILEGE LIKE UPPER('%DATABASE LINK%');

这个时候发现查询结果有两条了,那么接下来就可以创建dblink了

3.机器A上登录用户user1,执行查询语句:

CREATE PUBLIC  DATABASE LINK user2_dblink
  CONNECT TO user2 IDENTIFIED BY user2pass
  USING '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.0.222)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';

关键词解释:
user2_dblink:dblink的名称,喜欢写什么就写什么
user2:需要远程连接的数据库用户名
user2pass:需要远程连接的数据库密码
192.168.0.222:远程数据库机器地址
1521:数据库端口
orcl:数据库名称

要是没有创建成功,就是哪个地方写错了
4.使用dblink进行查询

SELECT * FROM T_USER@user2_dblink;

注:
使用dblink的格式是,表名@dblink名称,中间一个@符号做标号就行了,其他与使用普通表是一样的。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值