咱們有兩個數據庫a,b,分別有兩個用戶A和B,用戶A但願訪問B的全部表.sql
第一步:在用戶B所在的數據庫中新建一個用戶c,而後將B的全部表的查詢權限賦給c.數據庫
set pages 999;
set heading off;
spool run_grant.sql
select 'grant select on '||owner||'.'||object_name||' to c;'
from dba_objects
where object_type='TABLE' and owner='B';
spool off;
@ run_grantide
第二步:用戶A新建一個dblink_bspa
DROP PUBLIC DATABASE LINK dblink_borm
create database link dblink_c
connect to c identified by c的密碼
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 主機ip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = 實例名)
)
)';ip
而後用下面的語句訪問用戶get
select * from B.table@dblink_b it