数据库审计audit

13.1 审计的功能:监控特定用户在database 的action(操作)
   
13.2 审计种类:

1)标准数据库审计(语句审计、权限审计、对象审计)
2)基于值的审计(Value-Based, 触发器审计)
3)精细审计(FGA)
        
13.3 启用审计(默认不启用)

09:55:23 SQL> show parameter audit

NAME                                 TYPE         VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string     /u01/admin/timran11g/adump
audit_sys_operations            boolean     FALSE
audit_syslog_level                string
audit_trail                              string       DB
SQL>

audit_trail参数三个选项  
         
  1)none  不启用audit
  2)db 将审计结果放在数据字典基表sys.aud$中,(一般用于审计非sys用户,也可以移出system表空间,在DB中的好处是方便检索)
  3)os 将审计结果存放到操作系统的文件里(由audit_file_dest指定的位置, 一般用于审计sys)
         
审计sys
1)Oracle强制审计sys用户的特权操作,如启动和关闭数据库,结果记录在参数audit_file_dest指向的.aud文件中。
2)指定参数audit_sys_operations = true 和 audit_trail = os
  
13.4 标准数据库审计的三个级别

查看标准审计结果可以通过视图dba_audit_taile, 该视图读取aud$内容。

13.4.1 语句审计

按语句来审计,比如audit table会审计数据库中所有的create table, drop table, truncate table语句,执行成功或不成功都可审计。

SQL> audit table;

13.4.2 权限审计

按权限来审计,当用户使用了该权限则被审计,如执行grant select any table to a; 当用户a访问了用户b的表时(如select * from b.t;)
会用到select any table权限,故会被审计。用户访问自己的表不会被审计。

SQL> audit select any table;

13.4.3 对象审计

按对象审计,只审计on关键字指定对象的相关操作,如:aduit alter,delete,drop,insert on cmy.t by scott; 这里会对cmy用户的t表进行审
计,但同时使用了by子句,所以只会对scott用户发起的操作进行审计。

SQL> audit update on scott.emp; 
                     
13.5 基于值的审计。

它拓展了标准数据库审计,不仅捕捉审计事件,还捕捉那些被insert,update和delete的值。由于基于值的审计是通过触发器来实现。所以你可以选择哪些信息进入审计记录,比如,只记录提交的信息,或不记录已改变的数据等。(注意点)

例,记录下scott的登录轨迹。

linux下sys:
SQL> truncate table aud$;
SQL> audit session by scott;
SQL> select count(*) from aud$;

COUNT(*)
----------
         0
cmd下scott:

C:\Documents and Settings\timran>sqlplus scott/scott@timran11g

linux下sys:

SQL> select count(*) from aud$;

COUNT(*)
----------
         1
col username for a10;
col userhost for a30;
SQL> select username,userhost,timestamp,action_name from dba_audit_trail;

USERNAME   USERHOST                       TIMESTAMP           ACTION_NAME
---------- ------------------------------ ------------------- ----------------------------
SCOTT      WORKGROUP\TIMRAN-222C75E5      2014-01-09 13:35:53 LOGON

SQL> noaudit session by scott;

13.6 精细审计Fine Grained Auditing (FGA)。它拓展了标准数据库审计,捕捉准确的SQL语句。

EM中只有标准数据库审计,目前还没有包括基于值的审计和精细审计。

13.6.1 举例:精细审计Fine Grained Auditing (FGA),审计访问特定行或特定行的特定列。操作可以使用dbms_fga包。

sys:
SQL> create table scott.emp1 as select * from scott.emp;
SQL> grant all on scott.emp1 to tim;

1)添加一个精细度审计策略

begin
dbms_fga.add_policy(
object_schema=>'scott',
object_name=>'emp1',
policy_name=>'chk_emp1', 
audit_condition =>'deptno=20',
audit_column =>'sal',
statement_types =>'update,select');
end;
/

2)测试一下步骤,再查看审计结果                                                                                               
scott:                                                                                                 
SQL> select * from emp1 where deptno=20;

tim: 
SQL>update scott.emp1 set sal=8000 where empno=7902;       
SQL>select empno,ename from scott.emp1 where deptno=20; //缺少sal列,不审计
   
sys: 
SQL> select empno,ename,sal from scott.emp1 where deptno=20;     //虽然符合条件,但sys默认不审计                       
                                                                                     
3)验证审计结果

11:32:24 SQL> conn /as sysdba                                                                                                            
SQL>  select db_user,to_char(timestamp,'yyyy-mm-dd hh24:mi:ss') "time" ,sql_text from dba_fga_audit_trail;
 
DB_USER                        time                 SQL_TEXT
------------------------------ ------------------- -------------------------------------------------------------------------
SCOTT                          2013-08-17 16:57:36 select * from emp1 where deptno=20
TIM                              2013-08-17 16:57:52 update scott.emp1 set sal=8000 where empno=7902
 
可以看出,必须同时满足了所有审计条件(前面定义的)才能入选。另外没有审计SYS.

SQL> truncate table fga_log$;  //清除审计记录                                                                       
SQL> select db_user,to_char(timestamp,'yyyy-mm-dd hh24:mi:ss') "time" ,sql_text from dba_fga_audit_trail;

no rows selected

4)删除FGA的PL/SQL API命令

exec dbms_fga.drop_policy(object_schema=>'scott',object_name=>'emp1',policy_name=>'chk_emp1');

注意点: 视图DBA_AUDIT_TRIAL显示标准数据库审计,DBA_FGA_AUDIT_TRIAL显示FGA,DBA_COMMON_AUDIT_TRIAL则两者都显示.要查看触发器审核结果,必须创建处理自己定义的表的自定义视图。

ORACLE的数据库审计 audit相关推荐

  1. 行云管家 V4.7产品新特性-国际化版本、支持Oracle的数据库审计、主机密码自动修改策略 发布日期:2018-11-22...

    行云管家在线体验: 行云管家[官网]-领先的云计算管理平台-云安全,堡垒机,自动化运维​ 行云管家新手有礼活动: 行云管家新手有礼,新用户1元即可体验专业版-优惠券​ 发布日期:2018-11-22 ...

  2. oracle开源数据库审计,oracle数据库审计

    一.何谓数据库审计? 数据库审计,就是对数据库的活动做跟踪记录,主要包括数据库连接,SQL语句执行,数据库对象访问这些方面的跟踪记录. 二.审记记录的存储方式 分为两种:一种是存储在操作系统文件中,一 ...

  3. oracle数据库审计(audit)

    oracle数据库审计(audit) audit是否开启 audit参数 1.audit_file_dest 2.audit_sys_operations 3.audit_syslog_level 4 ...

  4. oracle数据库视图存放位置,oracle数据库审计

    一.何谓数据库审计? 数据库审计,就是对数据库的活动做跟踪记录,主要包括数据库连接,SQL语句执行,数据库对象访问这些方面的跟踪记录. 二.审记记录的存储方式 分为两种:一种是存储在操作系统文件中,一 ...

  5. oracle数据库登录审计,oracle数据库审计

    一.何谓数据库审计? 数据库审计,就是对数据库的活动做跟踪记录,主要包括数据库连接,SQL语句执行,数据库对象访问这些方面的跟踪记录. 二.审记记录的存储方式 分为两种:一种是存储在操作系统文件中,一 ...

  6. OCA读书笔记(11) - 实现Oracle数据库审计

    11 Implementing Oracle Database Auditing 描述DBA对于安全和审计的职责 使能标准的数据库审计 安全审计选项 查看审计信息 维护审计路径 最小权限原则 只在计算 ...

  7. oracle数据库审计优点缺点,Oracle数据库安全性:标准数据库审计

    Oracle 数据库在其标准版和企业版数据库中均提供了强健的审计支持.审计记录包括有关已审计的操作.执行操作的用户以及操作的时间和日期的信息.审计记录可以存储在数据库审计线索中或操作系统上的文件上.标 ...

  8. oracle 审计设置,oracle数据库审计设置

    --开启oracle审计 su - oracle sqlplus / as sysdba SQL> show parameter audit --看到有下面的内容表示审计没有开启 audit_s ...

  9. 数据库oracle审计,Oracle数据库审计策略

    Oracle数据库审计策略 Oracle数据库默认是关闭审计的,一旦开启了会对oracle数据库的性能产生影响. Oracle默认安装后审计策略设置 默认情况下,审计策略是关闭的,而且审计记录存储的模 ...

最新文章

  1. Linux基础 30分钟GDB调试快速突破
  2. 极光API推送 (v3 版本)
  3. IOS中GPS定位偏移纠正(适用于Google地图)
  4. linux /etc/fstab 挂载列表 简介
  5. logback 常用配置详解(二) appender
  6. share with用法
  7. 牛客13592 武藏牌牛奶促销
  8. 基于android的视频播放器,基于Android的视频播放器的设计与实现-.doc
  9. java中的ackerman_java8的函数式接口
  10. STC51-C51基础知识
  11. 吴恩达机器学习作业3.2神经网络
  12. 被单位开除,已经交了14年的养老保险,该怎么办?
  13. 大家对于晚上下班兼职滴滴司机有什么看法?
  14. 一步一步使用 DialogFragment 封装链式调用 Dialog
  15. 【优化算法】多策略协同多目标萤火虫算法(MOFA_MOCS)【含Matlab源码 1512期】
  16. 光电经典好书:《光电系统设计基础》-吴晗平
  17. nginx过滤HttpHeader的 中划线
  18. 使用font-face艺术字失效
  19. aruba交换机配置命令_aruba交换机配置-实战篇
  20. Android Studio 控制台 log不显示解决

热门文章

  1. 江苏师范大学人文社科专硕论文格式设置(一)
  2. Java 企业微信会话内容(聊天记录)存档功能实现,并获取媒体文件
  3. 移动端悬浮按钮+可随意拖动
  4. cmd 运行 mysql_cmd上执行MySQL基础语句
  5. 有什么可以快速剪切音乐的工具
  6. 麒麟系统是不是鸿蒙系统,鸿蒙系统为什么不是安卓换皮?
  7. 基于Html的四季春茶销售网设计与实现
  8. BOOM-动态壁纸技术支持
  9. 前端 get 请求 拼接数组转换成字符串
  10. dcs world f15c教学_新概念英语 | 第二册(Lesson 93)教学视频/课文音频/精讲笔记...