DBlink作用:在当前数据库中访问另一个数据库中的表中的数据
sql
create public database link dblink名称 connect to 对方数据库用户名 identified by 对方数据库用户密码
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 要连接的数据库所在服务器的IP地址)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = 要连接的数据库的服务名)))';
eg:
sql
create public database link xxb connect to testuser identified by passwd
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 6.6.6.6)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';
相关权限命令
查询用户是否有创建dblink的权限
sql
select * from user_sys_privs where privilege like upper('%DATABASE LINK%');
CREATE PUBLIC DATABASE LINK:表示所创建的dblink所有用户都可以使用
CREATE DATABASE LINK:表示所创建的dblink只能是创建者能使用,别的用户不可以使用
DROP PUBLIC DATABASE LINK : 表示所创建的dblink所用用户都可以删除
sys用户赋权限
sql
grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to testuser;
创建成功后的使用方法
sql
select * from table_name@dblink名;
查看所有的DBLINK
sql
select * from dba_db_links;
如果密码里有特殊符合,比如 +
把密码用双引号引起来
sql
create public database link xxb connect to testuser identified by
"passwd+2023"
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 6.6.6.6)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';