使用场景:
用户A在服务器1数据库上
用户B在服务器2数据库上
通过用户A访问用户B的test表,即跨服务器访问数据库
1.在服务器2创建用户C给定访问用户B的test表权限
--创建用户C赋予密码
create user C identified by password;
--授予C用户创建session的权限,即登陆权限
grant create session to C;
--授予C用户查看指定用户B的test表的权限
grant select on B.test to C;
2.查询用户A是否具有创建dblink的权限
select * from user_sys_privs where privilege like upper('%DATABASE LINK%');
没有权限的话使用sys授权
grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to A;
3.在用户A上创建dblink链接
create public database link ATOCDBLINK
connect to C identified by 密码
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';
其中ATOCDBLINK 为dblink名字,
connect to 需要连接的用户名 identified by 密码
HOST=需要连接数据库的ip
SERVICE_NAME=数据库实例
4.检查是否创建成功
select * from dba_db_links;
select owner,object_name from dba_objects where object_type='DATABASE LINK';
5.查询test表
select * from C.test@ATOCDBLINK;
注:删除dblink
drop public database link ATOCDBLINK;