您的位置:首页 > 数据库 > Oracle

oracle 11g 审计

2015-11-10 15:31 363 查看
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[/code] 
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: