目的:oracle中跨数据库查询
两台数据库服务器db_A(本地)和db_B(远程192.168.1.100),db_A下用户user_a 需要访问到db_B下user_b的数据
解决:查询得知使用dblink(即database link 数据库链)
实现过程:
1、确定用户user_a有没有创建 dblink 的权限:
create public database link dblink1
connect to user_b identified by user_bpass
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';
select * from user_sys_privs where privilege like upper('%DATABASE LINK%');
2、如果没有,以sys用户登录到本地数据库 给用户user_a赋权:
grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to user_a;
注:
dblink有三种权限ÿ