zoukankan      html  css  js  c++  java
  • Oracle数据库统一审核的启用测试与关闭

    环境:windows server 2008、Oracle 12c R2

    下面的步骤,连接为sysdba,除非指定了其它方式。

    (1)运行如下查询,确定统一审核是否启用了:

    select value from v$option where parameter='Unified Auditing';

    在标准安装中,这会返回FALSE。如果返回的是TRUE,表示已经启用了统一审核,则跳到步骤(5)。

    (2)关闭Oracle服务。

    关闭所有数据库实例和侦听器。在Windows上,也停止所有与Oracle相关的Windows服务。

    (3)启用统一审核。

    windows上,是复制统一审核动态链接库:

    cd %ORACLE_HOME%in

    copy orauniaud12.dll.dbl orauniaud12.dll

    或者直接到%ORACLE_HOME%in目录下,手动复制orauniaud12.dll.dbl为orauniaud12.dll

    (4)确认统一审核现在已启用。

    启动实例和侦听器(在Windows上,启动相关的服务),重新运行步骤(1)中的查询语句,看是否返回TRUE。

    (5)创建并启用自己的策略。

    create audit policy aud_dba_role roles dba; --创建角色策略

    audit policy aud_dba_role by system;  --把角色策略赋予system

    select policy_name,enabled_opt,user_name from audit_unified_enabled_policies; ---确认已经配置了策略,查询已生效的统一审核策略

    (6)测试策略

    连接为system用户,执行几个操作。

    create user x identified by y;   ---创建用户,在12c中,名字前面要加前缀c##,不过可以在pdb中建用户,不用带c##

    alter user c##test identified by test;---修改用户密码(12c cdb$root中用户)

    alter system set open_cursors=300 scope=memory;  ---修改实例参数,仅在内存中生效

    exec dbms_audit_mgmt.flush_unified_audit_trail; ---把当前缓存到SGA中的所有记录转存到数据库的审核记录中。

    select dbusername,sql_text,audit_type,action_name,object_name,unified_audit_policies from unified_audit_trail; ---查询审核记录

    如果有记录,

    (7)

    连接为sysdba,找到审核记录表。

    select table_name from dba_tables where owner='AUDSYS';

    上述语句的查询结果为aud$unified,继而查询记录表中的数据

    select audit_type,sql_text,event_timestamp,unified_audit_policies from audsys.aud$unified;

    默认情况下,不能对表audsys.aud$unified执行DML和DDL操作。即执行语句:delete from audsys.aud$unified会报错。

    但是可以通过对unified_audit_trail来操作,删除了unified_audit_trail中的记录之后,,audsys.aud$unified中的记录也被清除了。

    (8)清除审核记录

    select count(*) from unified_audit_trail;--查询现有审核记录数

    execute dbms_audit_mgmt.clean_audit_trail(dbms_audit_mgmt.audit_trail_all,false);--通过dbms_audit_mgmt来管理unified_audit_trail中的审核记录

    select count(*) from unified_audit_trail;--再次查询记录,发现只有一行,这一行是刚才清楚数据的那条动作记录。

    select count(*) from audsys.aud$unified;--查询也只有一行。

  • 相关阅读:
    【NYOJ】[57]6174问题
    【NYOJ】[56]阶乘因式分解(一)
    【NYOJ】[56]阶乘因式分解(一)
    【看书】for,(do-)while的循环体执行
    【看书】for,(do-)while的循环体执行
    【NYOJ】[41]三个数从小到大排序
    【NYOJ】[41]三个数从小到大排序
    EndNote X7大客户版破解版
    [TomTom]安卓汉化版v1.3,中国及海外地图懒人包
    [TomTom]安卓汉化版v1.3,中国及海外地图懒人包
  • 原文地址:https://www.cnblogs.com/ray-bk/p/10137835.html
Copyright © 2011-2022 走看看