【问题标题】:How can I audit the individual functions/procedures inside package如何审核包内的各个功能/程序
【发布时间】:2020-01-27 01:45:00
【问题描述】:

我正在尝试在我们的数据库中设置一些审核,以找出我们使用的功能/程序,但在尝试审核我的各个功能的执行时停止了 inside my包。

我可以为各种功能、程序和包设置审计

    audit execute on [procedure] by access; 
    audit execute on [function] by access; 
    audit execute on [package] by access; 

但我还需要包内的单个对象 像

    audit execute on [package.function] by access;
    audit execute on [package.procedure] by access;

当在包中执行某些东西时,dba_audil_trail 只是显示包已被执行,而不是包内的实际功能。

【问题讨论】:

    标签: oracle package audit-trail


    【解决方案1】:

    我放弃了审核方法来给我想要的东西,所以我最终在每个函数/过程中插入了以下代码行,无论是内部还是外部包,我想跟踪使用..(一些被使用所以我经常再次禁用跟踪并将它们放在例外列表中)

    PRAGMA AUTONOMOUS_TRANSACTION;--for auditlogning (needed in functions)
    BEGIN
    CREATE_AUDIT_LOG([Stored_Procedure_name]);--for auditlogning
    

    CREATE OR REPLACE PROCEDURE CREATE_AUDIT_LOG(p_objectname in varchar2) IS 
    BEGIN
    INSERT INTO AUDIT_EXECUTE_LOG values(sysdate,
    p_objectname,
    sys_context('USERENV','MODULE'),
    SYS_CONTEXT ('USERENV','OS_USER'),
    SYS_CONTEXT ('USERENV','HOST'),
    SYS_CONTEXT ('USERENV','CURRENT_SCHEMA'),
    SYS_CONTEXT ('USERENV','SERVICE_NAME'),
    SYS_CONTEXT ('USERENV','SESSION_USER') 
      );
    commit;
    END CREATE_AUDIT_LOG;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多