代码改变世界

使用sys用户创建其他用户下的dblink

2017-04-11 09:53  AlfredZhao  阅读(...)  评论(...编辑  收藏

因为dblink的创建和删除只能是它的所属用户来操作,所以我们无法直接使用sys用户创建其他用户下的dblink,当遇到有这样的需求时,可以先建立该用户下存储过程,再通过调用这个存储过程来间接实现。
举例来说:

1.使用sys用户创建JY2用户下的dblink “TO_11G_JY1”,连接远端“WINORA”的jy1用户:

--Create other user's dblink
--grant create database link to jy2;
create or replace procedure jy2.createlink 
is
begin
execute immediate 'create database link TO_11G_JY1 connect to jy1 identified by jy1 using ''WINORA''';
end;
/

--create database link using above procedure
exec jy2.createlink;

2.使用sys用户删除JY2用户下的dblink “TO_11G_JY1”:

--Drop other user's dblink
create or replace procedure jy2.droplink 
is
begin
execute immediate 'drop database link TO_11G_JY1';
end;
/

--drop database link using above procedure
exec jy2.droplink;