zoukankan      html  css  js  c++  java
  • 5、Oracle数据库审计

    1、审计(Audit):

    对用户所执行的数据库活动的跟踪记录,便于事后监督、检查

    审计信息存放位置:

    审计记录信息,存储在system表空间中的SYS.AUD$数据字典表;

    或操作系统默认位置$ORACLE_BASE/admin/$ORACLE_SID/adump/;

    Oracle 11G以后,数据库默认是开启审计功能的,因此有时候我们忘记了关闭该功能导致SYSTEM表空间暴满,但由于关闭审计功能需要重启数据库,此类操作生产环境下是不允许的,因此我们需要找出哪类审计产生的较多,然后单独的进行关闭;我们可以通过如下方法查找:如果你发现AUD$这个表比较大了,检查下是哪种审计占的空间:

    SQL> select action_name,count(*) from dba_audit_trail group by action_name;

    --一般是LOGON和LOGOFF类型的审计最多。取消此类审计:

    SQL> noaudit session whenever successful;

    --一般来说,如果空间不是占的特别多,此类审计还是保留为好。可以取消对一些登录特别频繁的用户的审计,比如DBSNMP用户:

    SQL> noaudit session by U007;

    --关闭审计后,对表sys.aud$进行清理

    select * from  sys.aud$;

    truncate table selsys.aud$;

    审计参数AUDIT_TRAIL

    参数值取值列表:

    (1).DB/TRUE ---- 启用审计,并且把审计结果存放在数据库的SYS.AUD$表中

    (2).OS ---- 启用审计,并把审计结果存放在操作系统的审计信息中

    (3).DB_EXTENDED ---- 启用审计,把审计结果存放在数据库SYS.AUD$表中,并在CLOB列的SQLBINDSQLTEXT字段记录额外的信息;

    (4).XML ---- 启用审计,以XML格式写所有审计记录;

    (5).EXTENDED ---- 启用审计,在审计跟踪中记录所有列,包括SQLTEXTSQLBIND

    (6).NONE/FALSE ---- 禁用审计

    以下步骤设置Oracle的审计功能:

    (1).修改审计参数AUDIT_TRAIL:

    Alter system set AUDIT_TRAIL=DB scope=spfile;

     (2).初始化数据库审计功能:

    connect /as sysdba执行脚本cataudit.sql,脚本位置D:appAdministratorproduct11.2.0dbhome_1RDBMSADMIN;

     (3).重启数据库:

    由于参数AUDIT_TRAIL不是动态的,需要关闭数据库重启生效

      

    2、审计分类和用法:

    语句审计:

    --语法

    AUDIT sql_statement_clause [BY user_name] | [BY [SESSION | ACCESS]

    WHENEVER [NOT] SUCCESSFUL]

    参数说明:

    sql_statement_clause ---- SQL语句或选项;

    BY ACCESS ---- 存取方式,每条语句被执行一次都要审计,不管语句是否相同;

    BY SESSION ---- 会话方式,相同的语句只被审计一次,这也是系统默认方式;

    WHENEVER SUCCESSFUL ---- 表示只对成功语句进行审计;

    WHENEVER NOT SUCCESSFUL ---- 表示只对不成功语句进行审计。

    --举例:

    --(1).审计用户对对象的操作:

    Audit table by scott;

    --(2).审计用户执行的SQL语句:

    Audit create table by scott;

    Audit insert table by u0007; ---- 审计insert into表或视图;

    Audit delete table by u0007; ---- 审计删除表或视图中的行;

    --(3).指定审计方式:

    Audit delete table by u0007 by access; ---- 存取方式,每条语句执行一次都要审计;

    --(4).审计成功与不成功的会话:

    Audit session by u007 whenever not successful; ---- 只对不成功语句进行审计;

    --(5).了解哪些用户进行了审计,可查询数据字典视图DBA_STMT_AUDIT_OPTS

    select * from dba_stmt_audit_opts where user_name='U007';

    --(6).停止语句审计:

    Noaudit alter table by U007;

     

    权限审计:

    --语法:

    AUDIT privilege [BY user_name] | [BY [SESSION | ACCESS]

    WHENEVER [NOT] SUCCESSFUL]

     

    对象审计:

    --语法:

    AUDIT schema_object_clause ON schema

    [BY user_name] | [BY [SESSION | ACCESS]

    WHENEVER [NOT] SUCCESSFUL]

    Audit select,insert,delete on scott.dept by access;

    3、细粒度审计(FGA)

    是由DBMS_FGAPL/SQL程序实现的

    生命不息,折腾不止;不计后果,不问前程!
  • 相关阅读:
    USACO Milk2 区间合并
    Codeforces 490B Queue【模拟】
    HDU 3974 Assign the task 简单搜索
    HDU 5119 Happy Matt Friends(2014北京区域赛现场赛H题 裸背包DP)
    Cin、Cout 加快效率方法
    POJ 1159 回文LCS滚动数组优化
    POJ 2479 不相交最大子段和
    POJ 1458 最长公共子序列 LCS
    在阿里最深刻的,还是职场之道给我的震撼
    精细化
  • 原文地址:https://www.cnblogs.com/jionjionyou/p/5507066.html
Copyright © 2011-2022 走看看