Oracle审计简述

审计

审计:数据库日志不记录个人行为操作。
1.SHOW PARAMETER DUDIT --查看数据库是否开启审计功能
2.AUDIT_TRAIL的VALUE=DB的时候代表已经开启了审计,在
ORACLE10G以前这个VALUES值默认是NONE,11G之后就是DB。

将AUDIT_TRAIL的VALUE改成几种形式:
DB:数据库的审计信息将存放在SYS模式下的AUD 表 中 。 O S : 数 据 库 的 审 计 信 息 将 存 放 在 操 作 系 统 当 中 。 D B E X T E N D E D : 数 据 库 的 审 计 信 息 将 存 放 在 S Y S 模 式 下 的 A U D 表中。 OS:数据库的审计信息将存放在操作系统当中。 DB_EXTENDED:数据库的审计信息将存放在SYS模式下的AUD OSDBEXTENDED:SYSAUD表中,
并且生成SQL_TEXT的语句可以查看在数据库中执行了什么语句
XML:数据库的审计信息将以XML的形式存储。
XML_EXTENDED:同上。

修改审计模式:
ALTER SYSTEM SET AUDIT_TRAIL = DB_EXTENDED SCOPE = SPFILE; --因为AUTIT是属于静态参数,不能直接修改内存中的值,必须重启才生效。

查看具体的审计事件
DESC DBA_ADUIT_TRAIL --存放每个用户的动作(ACTION_NAME)和SQL_TEXT(执行语句);
在未将审计转换到DB_EXTENDED前,不会出现任何用户的语句记录在SQL_TEXT中;

–查看PAS用户的审计信息:
SELECT TIMESTAMP,ACTION_NAME,SQL_TEXT,USERNAME
FROM DBA_AUDIT_TRAIL WHERE USERNAME = ‘PAS’;

–数据库中的审计信息必须是指定用户进行审计监督,例如公司的张三要离职了,以防万一他对公司有报复心理,所以就对张三的数据库用户指定审计,监测他这个用户在数据库中的一举一动,如果没有指定是不会记录SQL_TEXT。

–指定审计用户语句
AUDIT 语句 BY ‘张三’ (BY ACCESS | BY SESSION | WHENEVER NOT SUCCESSFUL | WHENEVER SUCCESSFUL);
上面这条SQL从语句开始解析:AUTIT 语句(
这里的指的是你需要监测这个用户的什么动作,可以有CREATE USER,DROP USER, ALTER USER等,但是也可以直接
写为 AUDIT USER或者TABLE,这样可以直接将前面的动作全部都会进行记录(TBALE就是DROP TABLE等广泛动作))
AUDIT USER :记录该用户下所有涉及用户操作的语句审计。
AUDIT TABLE:记录该用户下所有涉及表操作的语句审计。
BY ACCESS:记录的频率为只要在记录动作的范围,不管用户的语句执行是否重复,都会进行记录,并且在不指定记录频率的前提下,对象审计默认都是BY ACCESS。
BY SESSION: 记录的频率为只记录用户在同一会话里,如果用户的执行语句出现重复的话,都只会记录1条语句
WHENEVER NOT SUCCESSFUL:只记录执行不成功的语句。
WHENEVER SUCCESSFUL:只记录执行成功的语句。

--对象审计
AUDIT TABLE BY '张三' --这里将记录张三对表的所有DDL操作(数据库定义语句)

--权限审计
AUDIT CREATE TABLE BY '张三' --记录张三CREATE TABLE对表权限的审计

--语句审计
AUDIT SELECT ON '张三'.AA BY '章三' --记录张三用户下AA表的审计信息,只对AA表生效,其他对象不记录。

–当指定了BY SESSION记录频率,只会对下一次连接生效,本次会话不做记录。

–取消审计
NOAUDIT TABLE BY PAS;

–想要切换审计动作或者审计频率必须先将原来的审计取消后再重新执行新的审计命令和重新登录,不然不生效。

/**
想知道对谁做了基于对象审计 DESC DBA_STMT_AUDIT_OPTS
–像上面我们是已经指定了PAS用户的审计,所以在这张表里面就能查询到PAS用户的所有审计信息,如果取消了对应的审计
则查询无结果。
SELECT USER_NAME,AUDIT_OPTION,SUCCESS,FAILURE FROM DBA_STMT_AUDIT_OPTS WHERE USER_NAME = 'PAS';

对象审计:
INDEX,TABLE,PROCEUDRE…都可以作为审计动作

想知道对谁做了基于权限审计 DESC DBA_PRIVS_AUDIT_OPTS
权限审计:
CREATE TABLE, CREATE INDEX, DROP TABLE ,SELECT ANY TABLE …制定对应系统权限的审计,只会对指定的权限进行信息采集,其他不与记录。
之前有讲到系统权限有哪些,可以向上翻阅参考。

语句审计:
AUDIT SELECT, INSERT, UPDATE, DELETE ON TOM.AA; --对AA表的DML操作都会产生记录
DESC DBA_OBJ_AUDIT_OPTS --可以查看监测了某个用户哪些语句,以简写展示。
*/

–权限审计默认记录和对象审计频率不同,对象审计不指定记录频率是BY ACCESS,而权限审计默认记录频率是BY SESSION;

–一般默认情况都不会记录执行不成功的语句,除非特别设置WHENEVER NOT SUCCESSFUL.

SHOW PARAMETER AUDIT.AUDIT_SYS_OPERATIONS的VALUE值默认是FALSE,将AUDIT_SYS_OPERATIONS设置成TRUE后,那么做为SYSDBA或SYSOPER连接数据库的用户所发布的每条语句都会被写入操作系统的审计中,从而能够给出DBA所进行操作的完整记录。

--"标准审计"查看结果
DESC DBA_STMT_AUDIT_OPTS --查看用户有哪些对象审计
DESC DBA_PRIV_AUDIT_OPTS --查看用户有哪些权限审计
DESC DBA_OBJ_AUDIT_OPTS --查看用户有哪些语句审计
DESC DBA_AUDIT_OBJECT --查看用户全部审计语句对象的汇总
DESC DBA_AUDIT_TRAIL --查看用户全部审计的执行语句(SQL)管理员模式可以查看其他用户的审计
DESC USER_AUDIT_TRAIL --查看对谁做了审计
DESC USER_AUDIT_SESSION --查看某个用户对会话的审计

–什么是“细颗粒审计(FGA)”?
我们在标准审计里面可以看到我们执行的UPDATE,INSERT,DELETE等等语句,但是我们并不清楚执行前的数据
变化,例如UPDATE 1 = 2,通过标准审计模式只能看到使用过UPDATE,而不能看到1 = 2,但是用FGA可以记录
并且会记录的比标准审计更仔细,FGA的执行方式需要编写PL/SQL来完成。

–“细颗粒审计(FGA)”查看结果
DESC DBA_FGA_AUDIT_TRAIL --等同于标准审计的DBA_AUDIT_TRAIL,只不过是用来专门查看FGA的审计结果
DESC DBA_COMMON_AUDIT_TRAIL --查看普通的审计信息(去了解?)

OEM也可以做审计,可以在图形化界面上学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值