1.PDBA 要访问PDBB的内容
(1)登录PDBB
PDBB 里面创建一个连接PDBB的用户。
alter session set container=PDBB;
create user U_pdbb identified by u_pdbb;
grant create session to U_pdbb;
(2)登录PDBA
alter session set container=PDBA;
create plublic database link DBLINK_PDBB connect to U_pdbb identified by U_pdbb
using '(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.1.1)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME =PDBB)))';
即使用PDBB里面的U_pdbb用户连接PDBB;
(3)把PDBB里面 USERA.TAB1 的访问权限给到 U_PDBB;
alter session set container=PDBB;
grant select on USERA.TAB1 to U_PDBB;
(4)在PDBA里面访问PDBB的数据。
alter session set container=PDBA;
select * from USERA.TAB1@DBLINK_PDBB ;
(5)如果想要查看 U_PDBB可以访问哪些表。
alter session set container=PDBB;
col GRANTEE for a20
col OWNER for a20
col TABLE_NAME for a30
COL HIERARCHY FOR A20
COL GRANTABLE FOR A20
COL GRANTOR FOR A20
set lin 200
select GRANTEE,OWNER,TABLE_NAME,GRANTOR,PRIVILEGE,GRANTABLE,HIERARCHY
from dba_tab_privs where grantee='U_PDBB' and PRIVILEGE='SELECT';
2.总结
PDB之间访问的前提是先授权,将被访问的表的访问权限授权给PDB的连接用户,即可访问相关的表