Skip to content

局部对象级审计

对象级审计发生在具体的对象上,需要指定模式名以及对象名。其审计选项如表1所示。

审计选项TABLEVIEWPROCEDURE/FUNCTION
INSERT-
UPDATE-
DELETE-
SELECT-
EXECUTE--
ALL(所有对象级审计选项)

语法格式

sql
{AUDIT | NOAUDIT} { TYPE } ON OBJ_NAME[BY USER_NAME ] [TO FILE] [WHENEVER SUCCESSFUL|WHENEVER NO SUCCESSFUL];

参数说明

  • 设置审计:AUDIT设置审计项;NOAUDIT取消审计项。

  • TYPE:局部对象级审计选项,即表3.4中的第一列。

  • OBJ_NAME:模式名.表名 或 模式名.存储过程名 等。

  • USER_NAME:用户名。审计指定用户的操作,若未指定用户则表示对当前库下所有用户操作进行审计。

  • WHENEVER:审计时机,可选的取值如下,若不加则表示无论成功与否都作记载(注:新版本取消审计项不再支持 WHENEVER 子句)。

    • SUCCESSFUL:操作成功时
    • NO SUCCESSFUL:操作失败时
  • TO FILE:若省略TO FILE则表示使用表模式进行审计,若选取 TO FILE 则表示使用日志模式进行审计;同一审计项只能选择其中一种模式,如需修改审计模式则根据审计语法重新执行一次设置审计项即可。

应用示例

  • 审计SYSDBA用户对表test_audit执行成功的查询操作。
    sql
    SQL> AUDIT SELECT ON SYSDBA.test_audit BY SYSDBA WHENEVER SUCCESSFUL;
  • 取消审计SYSDBA用户对表test_audit执行成功的查询操作。
    sql
    SQL> NOAUDIT SELECT ON SYSDBA.test_audit BY SYSDBA;
  • 审计SYSDBA用户对表test_audit执行成功的查询、更新、插入、删除操作。
    sql
    SQL> AUDIT SELECT,UPDATE,INSERT,DELETE ON SYSDBA.test_audit BY SYSDBA WHENEVER SUCCESSFUL;