Skip to content

局部语句级审计

语句级审计用于设置对某一类数据库对象或者某一类操作语句进行的审计,不对应具体的数据库对象。其审计选项如表1所示。

审计选项审计的数据库操作说明
USERCREATE USER
ALTER USER
DROP USER
创建/修改/删除用户操作
ROLECREATE ROLE
DROP ROLE
创建/删除角色操作
SCHEMACREATE SCHEMA
DROP SCHEMA
SET SCHEMA
创建/删除/设置模式操作
TABLECREATE TABLE
ALTER TABLE
DROP TABLE
TRUNCATE TABLE
创建/修改/删除/清空基表操作
VIEWCREATE VIEW
ALTER VIEW
DROP VIEW
创建/修改/删除视图操作
INDEXCREATE INDEX
DROP INDEX
创建/删除索引操作
PROCEDURECREATE PROCEDURE
ALTER PROCEDURE
DROP PROCEDURE
创建/修改/删除存储过程操作
TRIGGERCREATE TRIGGER
ALTER TRIGGER
DROP TRIGGER
创建/修改/删除触发器操作
SEQUENCECREATE SEQUENCE
ALTER SEQUENCE
DROP SEQUENCE
创建/修改/删除序列操作
TABLESPACECREATE TABLESPACE
ALTER TABLESPACE
DROP TABLESPACE
创建/修改/删除表空间操作
GRANTGRANT授予权限操作
REVOKEREVOKE回收权限操作
AUDITAUDIT设置审计操作
INSERT TABLEINSERT INTO TABLE表上的插入操作
UPDATE TABLEUPDATE TABLE表上的修改操作
DELETE TABLEDELETE FROM TABLE表上的删除操作
SELECT TABLESELECT FROM TABLE表上的查询操作
LOCK TABLELOCK TABLE表的加锁操作
EXECUTE PROCEDUREEXECUTE PROCEDURE调用存储过程或函数操作
POLICYCREATE POLICY
ALTER POLICY
DROP POLICY
创建/修改/删除安全策略操作
USER POLICYALTER USER POLICY赋予用户安全策略操作
TABLE POLICYALTER TABLE POLICY赋予表安全策略操作
PACKAGECREATE PACKAGE DROP PACKAGE创建/删除包规范操作
TYPECREATE TYPE
DROP TYPE
创建/删除自定义类型操作
DATABASE LINKCREATE DATABASE LINK
DROP DATABASE LINK
创建/删除数据库连接操作
INSERT ANY TABLEINSERT INTO TABLE表上的插入操作
UPDATE ANY TABLEUPDATE TABLE表上的修改操作
DELETE ANY TABLEDELETE FROM TABLE表上的删除操作
SELECT ANY TABLESELECT FROM TABLE表上的查询操作
LOCK ANY TABLELOCK TABLE表的加锁操作
EXECUTE ANY PROCEDUREEXECUTE PROCEDURE调用存储过程或函数操作
SYSARGSSET sys_args TO ...修改数据库参数命令

语法格式

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

参数说明

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

  • TYPE:语句级审计选项,即表3.3中的第一列。

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

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

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

应用示例

  • 审计 SYSDBA 用户操作 PACKAGE 对象成功的操作记录。

    sql
    SQL> AUDIT PACKAGE BY SYSDBA WHENEVER SUCCESSFUL;
  • 审计授予权限成功的操作记录。

    sql
    SQL> AUDIT GRANT WHENEVER SUCCESSFUL;
  • 审计查询表成功的操作记录。

    sql
    SQL> AUDIT SELECT TABLE WHENEVER SUCCESSFUL;
  • 取消审计创建、修改、删除序列值成功的操作。

    sql
    SQL> NOAUDIT SEQUENCE;
  • 取消审计创建、删除包成功的操作。

    sql
    SQL> NOAUDIT PACKAGE;