2011-08-05 109 views

回答

16

你不能。

您可以做的最好的事情是向用戶授予模式b中每個表的「選擇」特權。

此查詢會生成命令你將需要:

select 'grant select on A.'||table_name||' to B;' 
from dba_Tables 
where owner = 'A'; 

與此問題,在情況下,你會想新表添加到A.那麼你就必須授予特權在它上面分開。它不會自動做吧..

7

你可能會發現你沒有訪問dba_tables, 代碼運行在擁有架構(一)將權限授予所有表下面的塊,以用戶b

BEGIN 
    FOR t IN (SELECT * FROM user_tables) 
    LOOP 
     EXECUTE IMMEDIATE 'GRANT SELECT ON ' || t.table_name || ' TO b';  
    END LOOP; 
END;