• 数据库级别的审计


    审计: 跟踪数据库中的可以操作

    超级用户的审计

    超级用户有三种操作一定会被审计:

    • 超级用户的连接
    • 数据库的启动
    • 数据库的停止

    打开超级用户的额外审计:

    alter system set audit_sys_operation=true scope=spfile;

    超级用户审计的跟踪文件记录在哪里?

    1. show parameter audit_file_dest
    2. SQL> show parameter audit_file_dest
    3. NAME TYPE VALUE
    4. ------------------------------------ ----------- ------------------------------
    5. audit_file_dest string /u01/app/oracle/admin/cdb1/adu
    6. mp
    7. SQL>

    普通用户的审计:

    普通用户审计的线索记录在哪里?

    audit_trail=DB --> 使用数据字典aud$记录审计的线索

    audit_trail=OS --> 使用audit_file_dest指向的目录保存审计文件

    打开语句审计:

    • audit delete table; -->会话级成功,失败都审计
    • audit delete table whenever sucessful; --> 会话级成功
    • audit delete table whenever not sucessful; --> 会话级失败
    • audit delete table by access; --> 访问级成功、失败都审计
    • audit delete table by access whenever successful; --> 访问级成功
    • audit delete table by access whenever not successful;--> 访问级失败
    1. audit delete table by scott;
    2. audit delete table by scott whenever successful;
    3. audit delete table by scott whenever not successful;
    4. audit delete table by scott by access;
    5. audit delete table by scott by access whenever successful;
    6. audit delete table by scott by access whenever not sucessful;

    查看哪些语句已经被打开了审计:

    1. SQL>
    2. SQL> select audit_option,success,failure from dba_stmt_audit_opts where user_name='SCOTT';
    3. no rows selected
    4. SQL>

    查看审计线索

    1. SQL> delete aud$;
    2. 1 row deleted.
    3. SQL> commit;
    4. Commit complete.
    5. SQL> select * from aud$;
    6. no rows selected

    查看操作代码对应的操作名称:

    select name from audit_actions where action=1;

    关闭语句审计:

    noaudit delete table by scott;
    exec print_table('select * from aud$ where userid="SCOTT"');
    

    特权审计: 刚刚打开的审计对已持续的连接无效!!

    audit create any table by scott;

    查看特权审计:

    select PRIVILEGE,SUCCESS,FAILURE from dba_priv_audit_opts where user_name='SCOTT';

    对象审计:在具体某一个对象上面打开的审计选项

    1. audit delete on scott.emp;
    2. audit insert on scott.emp by access whenever not successful;
    1. SQL>
    2. SQL> select audit_option,success,failure from dba_stmt_audit_opts;
    3. no rows selected
    4. SQL>

  • 相关阅读:
    Redis入门到通关之Redis数据结构-List篇
    高频故障-桌面图标变成白纸图标的恢复方案
    创建阿里云的免费镜像仓库
    【数据结构】树
    Redis -- 哨兵
    带你全方位了解光谱共焦位移传感器
    【电源设计】11变压器在开关电源中的应用
    【Docker系列】Docker生产常用命令01
    2023-09-12 mysql-代号m-添加字段且字段非空出错-问题分析
    Stream流终结操作方法、收集操作及Stream综合练习
  • 原文地址:https://blog.csdn.net/u011868279/article/details/128193827