在多用戶 (Schema) 架構下,常需將某用戶的存儲過程執行權限授予另一用戶。本文示範標準授權語法,並強調最小權限原則與安全審計要點。
-- 以擁有者 user1 登入,授予 user2 執行權限
GRANT EXECUTE ON p_test TO user2;
關鍵點:
EXECUTE 權限而非 ALL,遵循最小權限原則。EXEC user1.p_test; 或建立同義詞簡化。GRANT EXECUTE ON pkg_util TO user2;
CREATE ROLE app_exec_role;
GRANT EXECUTE ON p_test TO app_exec_role;
GRANT EXECUTE ON pkg_util TO app_exec_role;
GRANT app_exec_role TO user2, user3, user4;
user1 權限執行,user2 僅需 EXECUTE 即可存取 user1 的表。AUTHID CURRENT_USER):以呼叫者 user2 權限執行,user2 需擁有底層表的直接權限。-- 查詢已授權情況
SELECT * FROM all_tab_privs WHERE table_name = 'P_TEST';
-- 撤銷授權
REVOKE EXECUTE ON p_test FROM user2;
GRANT ALL ON ...,務必明確指定 EXECUTE。DBA_TAB_PRIVS,清理無效/過期授權。AUDIT EXECUTE ON p_test BY ACCESS 審計執行軌跡。遵循最小權限原則授權存儲過程,既滿足業務協作需求,又能有效控制資料存取風險。