首先,查询数据库中多少dblink
select * from dba_objects where object_type ='DATABASE LINK'
其次,查询是否有dblink的权限
select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='user_name';
-user_name:数据库登陆用户名
再者,需要连接的用户授予创建dblink的权限
grant create public database link to user_name with admin option;
grant drop public database link to user_name;
--public:所有用户都可以用,去掉就只能单用户用
--user_name:数据库登陆用户名
--with admin option:再授权权限同时赋予该用户,取消是不级联的
--with grant option:再授权权限同时赋予该用户,取消是级联的
最后,创建dblink方法一:
create public database link FJFY_LINK connect to User_name identified by "Password" USING 'Database'
或者using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 12.1.3.216)(PORT = 1521)))
(CONNECT_DATA = (SERVICE_NAME = Database)))';
--FJFY_LINK:连接命名
--User_name:连接数据库用户名
--Password:连接数据库密码
--Database:连接数据库名
方法二(通过pl/sql developer图形化创建):
另外,撤销创建dblink的授权
revoke create public database_link from user_name;
--database_link:链接名
--user_name:授权的用户名
删除数据库链接
drop public database link FJFYHOSP_LINK;
--FJFYHOSP_LINK:链接名
补充:链接的数据库如何删除给权限的链接,无法访问