目录
1、打开审计
2、审计级别
系统级审计
语句级审计
对象级审计
3、审计文件管理
删除审计文件
查看审计信息
4、审计分析
审计分析工具Analyzer
审计分析工具dmaudtool
1、打开审计
- 0:关闭审计
- 1:打开普通审计
- 2:打开普通审计和实时审计
//SYSAUDITOR/SYSAUDITOR
打开普通审计开关:
SP_SET_ENABLE_AUDIT (1);
查看审计开关当前值:
SELECT * FROM V$DM_INI WHERE PARA_NAME='ENABLE_AUDIT';
2、审计级别
审计级别 | 说明 |
系统级 | 系统的启动、关闭、部分系统事件以及一些系统过程和函数的调用,此级别的审计无法也无需由用户进行设置,只要审计开关打开就会自动生成对应审计记录 |
语句级 | 导致影响特定类型数据库对象的特殊 SQL 或语句组的审计。如 AUDIT TABLE 将审计 CREATE TABLE、ALTER TABLE 和 DROP TABLE 等语句 |
对象级 | 审计作用在特殊对象上的语句。如 test 表上的 INSERT 语句 |
系统级审计
系统级审计无法无需由用户进行设置,只要审计开关打开就会自动生成对应审计记录。
数据库系统启动关闭、审计空间不足告警、数据库版本升级等。
语句级审计
语句级审计的动作只针对用户,不对应具体的数据库对象。
审计选项 | 审计的数据库操作 | 说明 |
ALL | 所有的语句级审计选项 | 所有可审计操作 |
USER | CREATE USER | 创建/修改/删除用户操作 |
ROLE | CREATE ROLE | 创建/删除角色操作 |
TABLESPACE | CREATE TABLESPACE | 创建/修改/删除表空间操作 |
SCHEMA | CREATE SCHEMA | 创建/删除/设置当前模式操作 |
TABLE | CREATE TABLE | 创建/修改/删除/清空基表操作 |
VIEW | CREATE VIEW | 创建/修改/删除视图操作 |
INDEX | CREATE INDEX | 创建/删除索引操作 |
PROCEDURE | CREATE PROCEDURE | 创建/修改/删除存储模块操作 |
TRIGGER | CREATE TRIGGER | 创建/修改/删除触发器操作 |
SEQUENCE | CREATE SEQUENCE | 创建/修改/删除序列操作 |
CONTEXT | CREATE CONTEXT INDEX | 创建/修改/删除全文索引操作 |
SYNONYM | CREATE SYNONYM | 创建/删除同义词 |
OPERATOR | CREATE OPERATOR | 创建/删除自定义运算符 |
GRANT | GRANT | 授予权限操作 |
REVOKE | REVOKE | 回收权限操作 |
AUDIT | AUDIT | 设置审计操作 |
NOAUDIT | NOAUDIT | 取消审计操作 |
INSERT TABLE | INSERT INTO TABLE | 表上的插入操作 |
UPDATE TABLE | UPDATE TABLE | 表上的修改操作 |
DELETE TABLE | DELETE FROM TABLE | 表上的删除操作 |
SELECT TABLE | SELECT FROM TABLE | 表上的查询操作 |
EXECUTE PROCEDURE | CALL PROCEDURE | 调用存储过程或函数操作 |
PACKAGE | CREATE PACKAGE | 创建/删除包规范 |
PACKAGE BODY | CREATE PACKAGE BODY | 创建/删除包体 |
MAC POLICY | CREATE POLICY | 创建/修改/删除策略 |
MAC LEVEL | CREATE LEVEL | 创建/修改/删除等级 |
MAC COMPARTMENT | CREATE COMPARTMENT | 创建/修改/删除范围 |
MAC GROUP | CREATE GROUP | 创建/修改/删除组,更新父组 |
MAC LABEL | CREATE LABEL | 创建/修改/删除标记 |
MAC USER | USER SET LEVELS | 设置用户等级/范围/组/特权 |
MAC TABLE | INSERT TABLE POLICY | 插入/取消/应用表标记 |
MAC SESSION | SESSION LABEL | 保存/取消会话标记 设置会话默认标记 设置会话行标记 |
CHECKPOINT | CHECKPOINT | 检查点(checkpoint) |
SAVEPOINT | SAVEPOINT | 保存点 |
EXPLAIN | EXPLAIN | 显示执行计划 |
NOT EXIST | 分析对象不存在导致的错误 | |
DATABASE | ALTER DATABASE | 修改当前数据库操作 |
CONNECT | LOGIN LOGOUT | 登录/退出操作 |
COMMIT | COMMIT | 提交操作 |
ROLLBACK | ROLLBACK | 回滚操作 |
SET TRANSACTION | SET TRX ISOLATION | 设置事务的读写属性和隔离级别 |
BACKUP | BACKUP DATABASE | 库/表空间/表/归档备份操作 |
RESTORE | RESTORE TABLESPACE | 表空间/表还原操作 |
DIMP | DIMP FULL | 逻辑导入:库级/用户级/模式级/表级 |
DEXP | DEXP FULL | 逻辑导出:库级/用户级/模式级/表级 |
FLDR | FLDR IN | FLDR 工具导入/导出 |
WARNING | AUD SPACE WARNING | 审计剩余可用空间不足 |
KEY | CREATE KEY | 生成/销毁密钥 |
CRYPT | ENCRYPT | 数据加密/解密 |
DTS | DTS IN | DTS 工具迁入/迁出 |
语法:SP_AUDIT_STMT(TYPE ,USERNAME ,WHENEVER )
TYPE 语句级审计选项,即上表中的第一列
USERNAME 用户名,NULL 表示不限制
WHENEVER 审计时机,可选的取值为:
- ALL:所有的
- SUCCESSFUL:操作成功时
- FAIL:操作失败时
例:
表的删除、新建和清空的审计
SP_AUDIT_STMT('TABLE', 'NULL', 'ALL');
取消对表的创建、修改、删除和清空的审计
SP_NOAUDIT_STMT('TABLE', 'NULL', 'ALL');
对 SYSDBA 创建、修改、删除用户成功进行审计
SP_AUDIT_STMT('USER', 'SYSDBA', 'SUCCESSFUL');
对用户 USER2 进行的表的修改和删除进行审计,不管失败和成功
SP_AUDIT_STMT('UPDATE TABLE', 'USER2', 'ALL');
SP_AUDIT_STMT('DELETE TABLE', 'USER2', 'ALL');
对象级审计
SP_AUDIT_OBJECT (
TYPE VARCHAR(30),
USERNAME VARCHAR (128),
SCHNAME VARCHAR (128),
TVNAME VARCHAR (128),
WHENEVER VARCHAR (20)
)
TYPE 对象级审计选项,即上表中的第一列
USERNAME 用户名
SCHNAME 模式名,为空时置‘null’
TVNAME 表、视图、存储过程名不能为空
COLNAME 列名
WHENEVER 审计时机,可选的取值为:
- ALL:所有的
- SUCCESSFUL:操作成功时
- FAIL:操作失败时
例:
对 SYSDBA 对表 PERSON.ADDRESS 进行的添加和修改的成功操作进行审计
SP_AUDIT_OBJECT('INSERT', 'SYSDBA', 'PERSON', 'ADDRESS', 'SUCCESSFUL');
SP_AUDIT_OBJECT('UPDATE', 'SYSDBA', 'PERSON', 'ADDRESS', 'SUCCESSFUL');
对 SYSDBA 对表 PERSON.ADDRESS 的 ADDRESS1 列进行的修改成功的操作进行审计
SP_AUDIT_OBJECT('UPDATE','SYSDBA','PERSON','ADDRESS','ADDRESS1','SUCCESSFUL');
3、审计文件管理
DM 审计信息存储在审计文件中。审计文件默认存放在数据库的 SYSTEM_PATH 指定的路径,即数据库所在路径。用户也可在 dm.ini 文件中添加参数 AUD_PATH 来指定审计文件的存放路径。
DM 的审计文件总存储空间大小由静态参数 AUDIT_SPACE_LIMIT 进行限制。
单个审计文件的大小可以通过动态参数 AUDIT_MAX_FILE_SIZE 指定。
删除审计文件
SP_DROP_AUDIT_FILE(
TIME_STR VARCHAR(128),
TYPE INT
);
TIME_STR:指定的时间字符串
TYPE:审计文件类型,0 表示删除普通审计文件,1 表示删除实时审计文件
例:
指定删除 2015-12-6 16:30:00 以前的普通审计文件
SP_DROP_AUDIT_FILE('2015-12-6 16:30:00',0);
查看审计信息
审计设置信息都记录在数据字典表 SYSAUDITOR.SYSAUDIT 中
序号 | 列 | 数据类型 | 说明 |
1 | LEVEL | SMALLINT | 审计级别 |
2 | UID | INTEGER | 用户 ID |
3 | TVPID | INTEGER | 表/视图/触发器/存储过程函数 ID |
4 | COLID | SMALLINT | 列 ID |
5 | TYPE | SMALLINT | 审计类型 |
6 | WHENEVER | SMALLINT | 审计情况 |
查看审计记录
// SYSAUDITOR/SYSAUDITOR
SELECT * FROM SYSAUDITOR.V$AUDITRECORDS WHERE USERNAME='SYSDBA';