局部对象级审计
对象级审计发生在具体的对象上,需要指定模式名以及对象名。其审计选项如表1所示。
审计选项 | TABLE | VIEW | PROCEDURE/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;