存储过程授权给子用户
将本身的存储过程授权给其他用户使用(用户名:USER_OHTER)
--存储过程案例(清空表数据)
--存储过程案例(清空表数据) CREATE OR REPLACE PACKAGE USER_A.PKG_TRA_TAB_OPERATION IS PROCEDURE P_TAB_TRUNCATE_A; -- 方法一 PROCEDURE P_TAB_TRUNCATE_B; -- 方法二 END PKG_TRA_TAB_OPERATION; / CREATE OR REPLACE PACKAGE BODY USER_A.PKG_TRA_TAB_OPERATION IS PROCEDURE P_TAB_TRUNCATE_A IS BEGIN EXECUTE IMMEDIATE TRUNCATE TABLE T_TAB_A; EXCEPTION WHEN OTHERS THEN RAISE_APPLICATION_ERROR(-20001, TRUNCATE TABLE ERROR); END P_TAB_TRUNCATE_A; PROCEDURE P_TAB_TRUNCATE_B IS BEGIN EXECUTE IMMEDIATE TRUNCATE TABLE T_TAB_B; EXCEPTION WHEN OTHERS THEN RAISE_APPLICATION_ERROR(-20001, TRUNCATE TABLE ERROR); END P_TAB_TRUNCATE_B; END PKG_TRA_TAB_OPERATION; /
给其他用授权(USER_OHTER):
grant execute on PKG_TRA_TAB_OPERATION to USER_OHTER;
其他用户调用(USER_OHTER):
--========================== 表清空(谨慎操作)USER_OHTER 执行 ======================================= --TRUNCATE TABLE T_TAB_A BEGIN USER_A.PKG_TRA_TAB_OPERATION.P_TAB_TRUNCATE_A; end; --TRUNCATE TABLE T_TAB_B BEGIN USER_A.PKG_TRA_TAB_OPERATION.P_TAB_TRUNCATE_B; end;