oracle-审计3

发布时间:2019-08-25 09:33:53编辑:auto阅读(1686)

    五、管理对象审计:
    /*

    针对具体的一个对象进行审计不能对一个用户进行审计。
    包括select、delete、update、insert、excute对象特权。

    */

    --5.1 启用对象审计

    /*
    环境准备:
    SQL> create user win identified by password quota 100m on users;

    用户已创建。

    SQL> grant create session, create table to win;

    授权成功。


    SQL> conn win
    输入口令:
    已连接。
    SQL> create table accp
      2  (
      3  sid int
      4  );

    表已创建。

    SQL> insert into accp values (1001);

    已创建 1 行。

    SQL> select * from accp;

           SID
    ----------
          1001

    SQL> commit;

     


    */

     


    --案例1:使用select审计

    --步骤1:查看启用的对象scott.emp审计选项

    select owner, object_name,object_type, ins,sel from
    dba_obj_audit_opts
    where owner='WIN'
    and object_name='ACCP';

    未选定行

    --步骤2:开启审计对象

    SQL> show user
    USER 为 "SYS"

    SQL> audit select on win.accp  ;

    审计已成功。

    --步骤3:查看启用的对象scott.emp审计选项

    select owner, object_name,object_type, ins,sel from
    dba_obj_audit_opts
    where owner='WIN'
    and object_name='ACCP';


    OWNER                          OBJECT_NAME                    OBJECT_TYPE       INS   SEL
    ------------------------------ ------------------------------ ----------------- ----- -----
    WIN                            ACCP                           TABLE             -/-   S/S


    /*

    ******如果步骤2中使用的by access则结果如下:

    OWNER                          OBJECT_NAME                    OBJECT_TYPE       INS   SEL
    ------------------------------ ------------------------------ ----------------- ----- -----
    WIN                            ACCP                           TABLE             -/-   A/A

    */

    --步骤4:让用户对对象进行操作

    SQL> grant select on win.accp to scott;  --授权让用户scott可以查看用户win的表accp

    授权成功。


    SQL> conn scott/tiger
    已连接。
    SQL> select * from win.accp;

           TID
    ----------
          1001

     

    --步骤5:检查审计跟踪

    SQL> conn sys as sysdba
    输入口令:
    已连接。

    select username, to_char(timestamp,'yyyy:mm:dd:hh') time, action_name from dba_audit_trail
    where username='SCOTT';


    USERNAME                       TIME          ACTION_NAME
    ------------------------------ ------------- ------------------
    SCOTT                          2008:10:29:02 SESSION REC


    /**********如果步骤2中使用的是by access则该步结果如下:


    USERNAME                       TIME          ACTION_NAME
    ------------------------------ ------------- ----------------------------
    SCOTT                          2008:10:29:03 SELECT

     

    */


    --步骤6:清空审计记录


    SQL> delete  from sys.aud$  ;

     

    --案例2:使用insert审计


    --步骤1:查看启用的对象scott.emp审计选项

    select owner, object_name,object_type, ins,sel from
    dba_obj_audit_opts
    where owner='WIN'
    and object_name='ACCP';

    未选定行

    --步骤2:开启审计对象

    SQL> audit insert on win.accp;

    审计已成功。

    --步骤3:查看启用的对象scott.emp审计选项

    select owner, object_name,object_type, ins,sel from
    dba_obj_audit_opts
    where owner='WIN'
    and object_name='ACCP';


    OWNER                          OBJECT_NAME                    OBJECT_TYPE       INS   SEL
    ------------------------------ ------------------------------ ----------------- ----- -----
    WIN                            ACCP                           TABLE             S/S   -/-


    /*

    ******如果步骤2中使用的by access则结果如下:

    OWNER                          OBJECT_NAME                    OBJECT_TYPE       INS   SEL
    ------------------------------ ------------------------------ ----------------- ----- -----
    WIN                            ACCP                           TABLE             A/A   -/-

    */

     

    --步骤4:让用户对对象进行操作

    SQL> grant insert on win.accp to scott;  --授权让用户scott可以查看用户win的表accp

    授权成功。


    SQL> conn scott/tiger
    已连接。
    SQL> select * from win.accp;

           SID
    ----------
          1001

    SQL> insert into win.accp values (1002);

    已创建 1 行。

    SQL> select * from win.accp;

           SID
    ----------
          1001
          1002

     

    --步骤5:检查审计跟踪

    SQL> conn sys as sysdba
    输入口令:
    已连接。

    select username, to_char(timestamp,'yyyy:mm:dd:hh') time, action_name from dba_audit_trail
    where username='SCOTT';


    USERNAME                       TIME          ACTION_NAME
    ------------------------------ ------------- ------------------
    SCOTT                          2008:10:29:02 SESSION REC

     


    /**********如果步骤2中使用的是by access则该步结果如下:


    USERNAME                       TIME          ACTION_NAME
    ------------------------------ ------------- ----------------------------
    SCOTT                          2008:10:29:03 INSERT


    */


    --步骤6:清空审计记录


    SQL> delete  from sys.aud$  ;

     


    ----------------------------------------------------------------------------------------
    ****************************************************************************************
    七、管理精细审计:
    ****************************************************************************************
    ----------------------------------------------------------------------------------------

    --7.1 环境准备

    /*

    SQL> show user
    USER 为 "SYS"

    create user win identified by password
    quota 100m on users;

    grant create session to win;


    SQL> conn scott/tiger
    已连接。
    SQL> show user
    USER 为 "SCOTT"


    create table accp
    (
    sid int,
    sno int
    )
    go

    insert into accp values (1001,2001);


    SQL> conn sys/password as sysdba
    已连接。

    SQL> show user
    USER 为 "SYS"

    grant select on scott.accp to win;


    */


    ---7.2 案例演示:


    --(1) 查询数据库中存在的FGA策略

    select policy_name, object_schema ,policy_name, policy_column, enabled, audit_trail
    from dba_audit_policies;

    未选定行

     

     


    --(2)新建FGA策略noselect

    begin
    dbms_fga.add_policy(object_schema=>'scott'
    ,object_name=>'accp'
    ,policy_name=>'noselect'
    ,audit_column=>'sid'
    ,enable=>false
    ,statement_types=>'select,update,delete'
    );
    end
    ;
    /

    --(3) 查询数据库中存在的FGA策略

    select policy_name, object_schema ,policy_name, policy_column, enabled, audit_trail
    from dba_audit_policies;


    POLICY_NAME     OBJECT_SCHEMA     POLICY_NAME      POLICY_COLUMN     ENABLED    AUDIT_TRAIL
    -------------------------- ------------------------------ ------------------------------ ---
    NOSELECT        SCOTT             NOSELECT          SID                NO    DB+EXTENDED

     

     


    -- (4) 启用FGA策略并查看数据库中存在的FGA策略
    begin
    dbms_fga.enable_policy(object_schema=>'scott'
    ,object_name=>'accp'
    ,policy_name=>'noselect'
    );
    end
    ;
    /


    select policy_name, object_schema ,policy_name, policy_column, enabled, audit_trail
    from dba_audit_policies;

    POLICY_NAME     OBJECT_SCHEMA     POLICY_NAME      POLICY_COLUMN     ENABLED    AUDIT_TRAIL
    -------------------------- ------------------------------ ------------------------------ ---
    NOSELECT        SCOTT             NOSELECT          SID               YES   DB+EXTENDED

     


    --(5) 查看FGA策略跟踪报表
    SQL> select db_user, timestamp, userhost from dba_fga_audit_trail where policy_name='NOSELECT';

    未选定行


    -- (6) win用户操作

    SQL> conn win/password
    已连接。
    SQL> show user
    USER 为 "WIN"


    select * from scott.accp;

     

     


    --(7) 查看FGA策略跟踪报表

    SQL> select db_user, timestamp, userhost from dba_fga_audit_trail where policy_name='NOSELECT';

    DB_USER                        TIMESTAMP   USERHOST
    ------------------------------ ----------- --------------------------------------------------------------------------------
    SCOTT                          2008-10-29  WORKGROUP\NANJING

     


    --(8) 停用FGA策略并检查数据库存在的策略

    begin
    dbms_fga.disable_policy(object_schema=>'scott'
    ,object_name=>'accp'
    ,policy_name=>'noselect'
    );
    end
    ;
    /


    select policy_name, object_schema ,policy_name, policy_column, enabled, audit_trail
    from dba_audit_policies;

    POLICY_NAME     OBJECT_SCHEMA     POLICY_NAME      POLICY_COLUMN     ENABLED    AUDIT_TRAIL
    -------------------------- ------------------------------ ------------------------------ ---
    NOSELECT        SCOTT             NOSELECT          SID               NO  DB+EXTENDED

     


    --(9) 删除FGA策略并查看数据库是否还存在这个FGA策略

    begin
    dbms_fga.drop_policy(object_schema=>'scott'
    ,object_name=>'accp'
    ,policy_name=>'noselect'
    );
    end
    ;
    /


    select policy_name, object_schema ,policy_name, policy_column, enabled, audit_trail
    from dba_audit_policies;

    未选定行

     

关键字

上一篇: QOS-3

下一篇: mogilefs高级应用(3)