Create a dblink under a different user
-- cr_dblink_other_user.sql
-- as sys run:

create user eric identified by eric;

grant resource to eric;

GRANT create database link TO eric;

create or replace procedure eric.createDBlink is begin execute immediate 'CREATE DATABASE LINK gilly 
CONNECT TO gillyuser IDENTIFIED BY xxx USING ''gillytns''';END;
/

exec eric.createDBlink;

select * from dba_db_links where owner='ERIC';

DROP procedure eric.createDBlink;

REVOKE create database link FROM eric;