赞
踩
oracle 11g 审计操作
审计对象有一下四种
statement 语句
privileges 权限
object 对象
network 网络
以上前三个个对象的区分参考官方文档Database SQL Language Reference里的audit相关信息
network参考Security Guide第九章network部分
查看当前的审计项目可以针对以上4个方向
SELECT * FROM DBA_STMT_AUDIT_OPTS; --查看statements相关审计
SELECT * FROM DBA_PRIV_AUDIT_OPTS; --查看privileges相关审计
SELECT * FROM DBA_OBJ_AUDIT_OPTS --查看object相关审计
--network暂时没有发现能够通过那个视图能查
SELECT * FROM ALL_DEF_AUDIT_OPTS; --查看默认的object相关审计
审计方式
by access --oracle建议用这种方式,因为记录信息比较全
by session
IN SESSION CURRENT
--审计当前回话,此方式不能停止审计,只能终止回话
--只针对statements且不能针对某一个用户使用,换句话说就是不能带by username
whenever successfull --成功才审计,不指定那么就不管成功与否都审计
whenever not successfull
例句:
audit select any table by scott by access whenever successfull --scott查看非scott的表成功时会产生一条审计
开启默认的审计
$ORACLE_HOME/rdbms/admin/secconf.sql --脚本说明标示default
--回到10g前的审计
$ORACLE_HOME/rdbms/admin/undoaud.sql
关闭所有审计选项
noaudit all privileges;
noaudit all statements;
noaudit EXEMPT ACCESS POLICY by access;
删除日志
truncate table sys.aud$; --删除标准审计日志
==>也可以用以下语句清理
DELETE FROM SYS.AUD$
WHERE NTIMESTAMP# > TO_TIMESTAMP ('28-FEB-09 09.07.59.907000 PM') AND
NTIMESTAMP# < TO_TIMESTAMP ('28-MAR-09 09.07.59.907000 PM');
ALTER TABLE SYS.AUD$ SHRINK SPACE;
关闭审计功能--关闭了,还是有一些选项是必须审计的。
alter system set audit_trail=none scope=spfile;
shutdown immediate;
startup;
更改审计日志放数据库
1)存放到数据库
alter system set audit_trail=db scope=spfile; --存放在表sys.aud$里面
alter system set audit_trail=db,extended scope=spfile;
2)存放到本地系统文件
alter system set audit_trail=os scope=spfile;
细粒度审计FGA --参考security guide第九章
日志放表sys.sfga_log$
这部分还是蛮简单的介绍两个功能
1.实现审计并发送alert日志到你的邮箱
2.针对某个客户端做审计
--简单介绍
DBMS_FGA.ADD_POLICY(
object_schema VARCHAR2,
object_name VARCHAR2,
policy_name VARCHAR2,
audit_condition VARCHAR2,
audit_column VARCHAR2, --多列或单列,若是配置了多列,那么audit_column_opts也
--要配置dbms_fga.any_columns/dbms_fga.all_columns
handler_schema VARCHAR2, --一般默认即可,配置发送邮件会用到
handler_module VARCHAR2, --一般默认即可,配置发送邮件会用到
enable BOOLEAN,
statement_types VARCHAR2, --SELECT,INSERT,UPDATE,DELETE 默认SELECT
audit_trail BINARY_INTEGER IN DEFAULT, --
audit_column_opts BINARY_INTEGER IN DEFAULT);
--例句:
BEGIN
DBMS_FGA.ADD_POLICY(
object_schema => 'HR',
object_name => 'EMPLOYEES',
policy_name => 'chk_hr_employees',
enable => TRUE,
statement_types => 'INSERT, UPDATE, SELECT, DELETE',
audit_trail => DBMS_FGA.DB);
END;
/
--查看配置好的策略
SELECT POLICY_NAME FROM DBA_AUDIT_POLICIES;
POLICY_NAME
-------------------------------
CHK_HR_EMPLOYEES
--查看配置后的审计记录
SELECT * FROM DBA_FGA_AUDIT_TRAIL;
相关视图介绍:
DBA_AUDIT_TRAIL for the SYS.AUD$ contents
DBA_FGA_AUDIT_TRAIL for the SYS.FGA_LOG$ contents
DBA_COMMON_AUDIT_TRAIL for both SYS.AUD$ and SYS.FGA_LOG$ contents
详情见官网
http://docs.oracle.com/cd/E11882_01/network.112/e36292/auditing.htm#DBSEG006
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。