局部语句级审计
语句级审计用于设置对某一类数据库对象或者某一类操作语句进行的审计,不对应具体的数据库对象。其审计选项如表1所示。
审计选项 | 审计的数据库操作 | 说明 |
---|---|---|
USER | CREATE USER ALTER USER DROP USER | 创建/修改/删除用户操作 |
ROLE | CREATE ROLE DROP ROLE | 创建/删除角色操作 |
SCHEMA | CREATE SCHEMA DROP SCHEMA SET SCHEMA | 创建/删除/设置模式操作 |
TABLE | CREATE TABLE ALTER TABLE DROP TABLE TRUNCATE TABLE | 创建/修改/删除/清空基表操作 |
VIEW | CREATE VIEW ALTER VIEW DROP VIEW | 创建/修改/删除视图操作 |
INDEX | CREATE INDEX DROP INDEX | 创建/删除索引操作 |
PROCEDURE | CREATE PROCEDURE ALTER PROCEDURE DROP PROCEDURE | 创建/修改/删除存储过程操作 |
TRIGGER | CREATE TRIGGER ALTER TRIGGER DROP TRIGGER | 创建/修改/删除触发器操作 |
SEQUENCE | CREATE SEQUENCE ALTER SEQUENCE DROP SEQUENCE | 创建/修改/删除序列操作 |
TABLESPACE | CREATE TABLESPACE ALTER TABLESPACE DROP TABLESPACE | 创建/修改/删除表空间操作 |
GRANT | GRANT | 授予权限操作 |
REVOKE | REVOKE | 回收权限操作 |
AUDIT | AUDIT | 设置审计操作 |
INSERT TABLE | INSERT INTO TABLE | 表上的插入操作 |
UPDATE TABLE | UPDATE TABLE | 表上的修改操作 |
DELETE TABLE | DELETE FROM TABLE | 表上的删除操作 |
SELECT TABLE | SELECT FROM TABLE | 表上的查询操作 |
LOCK TABLE | LOCK TABLE | 表的加锁操作 |
EXECUTE PROCEDURE | EXECUTE PROCEDURE | 调用存储过程或函数操作 |
POLICY | CREATE POLICY ALTER POLICY DROP POLICY | 创建/修改/删除安全策略操作 |
USER POLICY | ALTER USER POLICY | 赋予用户安全策略操作 |
TABLE POLICY | ALTER TABLE POLICY | 赋予表安全策略操作 |
PACKAGE | CREATE PACKAGE DROP PACKAGE | 创建/删除包规范操作 |
TYPE | CREATE TYPE DROP TYPE | 创建/删除自定义类型操作 |
DATABASE LINK | CREATE DATABASE LINK DROP DATABASE LINK | 创建/删除数据库连接操作 |
INSERT ANY TABLE | INSERT INTO TABLE | 表上的插入操作 |
UPDATE ANY TABLE | UPDATE TABLE | 表上的修改操作 |
DELETE ANY TABLE | DELETE FROM TABLE | 表上的删除操作 |
SELECT ANY TABLE | SELECT FROM TABLE | 表上的查询操作 |
LOCK ANY TABLE | LOCK TABLE | 表的加锁操作 |
EXECUTE ANY PROCEDURE | EXECUTE PROCEDURE | 调用存储过程或函数操作 |
SYSARGS | SET 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 对象成功的操作记录。
sqlSQL> AUDIT PACKAGE BY SYSDBA WHENEVER SUCCESSFUL;
审计授予权限成功的操作记录。
sqlSQL> AUDIT GRANT WHENEVER SUCCESSFUL;
审计查询表成功的操作记录。
sqlSQL> AUDIT SELECT TABLE WHENEVER SUCCESSFUL;
取消审计创建、修改、删除序列值成功的操作。
sqlSQL> NOAUDIT SEQUENCE;
取消审计创建、删除包成功的操作。
sqlSQL> NOAUDIT PACKAGE;