- 远程连接其他数据库的 db_link 方法
Oracle数据库中创建数据库链接(DBLink)允许您从一个数据库访问另一个数据库中的数据。
请注意,在执行这些操作之前,确保您拥有足够的权限,并且已经配置了适当的网络连接设置。以从源数据库A建立dblink到目标数据库B为例,展示全步骤。
源数据库A用户名:user1;密码:123;
目标数据库B用户名:user2;密码:1234。
1. 查看用户user1是否有dblink的权限
select * from user_sys_privs where privilege like upper('%DATABASE LINK%');
2 .给用户user1赋权限
如果用户user1没有dblink的权限,需要给用户赋权限;如果用户user1有dblink的权限,不需要给用户赋权限;
grant create public database link to user1; -- 需登录管理员账户授权
3 .建立从源数据库A到目标数据库B的dblink(使用user1用户)
create /* public */ database link link_name
connect to remote_username identified by remote_password
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.0.0)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';
例如:
create public database link db_user2
connect to user2 identified by "1234"
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.0.0)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';
PUBLIC关键字(可选)表示此DBLink可供所有用户使用,否则仅创建者可以使用。
link_name 是您为DBLink指定的名称。
remote_username 是要连接到的远程数据库上的用户名。
remote_password 是该用户的密码。
192.168.0.0 是主机ip地址
orcl 是数据库名称
1521 是oracle数据库端口号
4. 验证DBLINK 查询
SELECT * FROM EMP@db_user2;
5. 删除DBLINK 连接,需先要解除使用
ALTER SESSION CLOSE DATABASE LINK link_name;
DROP /* public */ database LINK link_name;