設定Package讓不同的Schema呼叫執行

Oracle預設是無法直接呼叫執行其他不同Schema的Package/Stored Procedure/Function...的。必需先透過適當的授權才可以,以下使用Package為例。

假設有一個Package "PKG_1"存在SchemaA裡,但SchemaB想要呼叫此Package,該怎麼設定呢?

<授權>-單一Schema
grant execute on PKG_1 to SchemaB;


<授權>-All Schema
grant execute on PKG_1 to public;


<移除授權>
revoke execute on PKG_1 from SchemaB;
revoke execute on PKG_1 from public;


<瀏覽有哪些授權>
select * from DBA_TAB_PRIVS where TABLE_NAME='PKG_1';


留言

這個網誌中的熱門文章

ORA-12514: TNS: 監聽器目前不知道連線描述區中要求的服務

Oracle 例外控制(Exception Control)

Oracle 工作排程 DBMS_JOB 筆記