• Oracle数据库之审计(五)


    目录

    1.审计

    2.登录审计

    3.操作审计

    4.对象审计

    5.权限审计


    Oracle学习的相关知识点(汇总)

    1.审计

    审计是监视和记录所选用户的数据活动,通常用于调查可疑活动,以及监视与收集特定数据活动的数据。审计的操作类型分为登录企图,对象访问和数据库操作等。

    管理员可以启用和禁用审计信息记录,但是,只有安全管理员才能对审计星级进行管理。当在数据库中启用审计时,可在语句执行阶段生成审计 记录。

    2.登录审计

    用户连接数据库的过程称为登录。

    • AUDIT SESSION:开 启连接数据库审计。
    • AUDIT SESSION WHENEVER SUCCESSFUL: 审计成功的连接图。
    • NOAUDIT SESSION:禁 止会话审计。
    • AUDIT SESSION WHENEVER NOT SUCCESSFUL:只是审计 连接失败。

    SELECT OS_Username, Username, Terminal,

             DECODE(Returncode, '0', 'Connected', '1005', 'FailedNull', '1017', 'Failed', Returncode),

             TO_CHAR(Timestamp, 'DD-MON-YY HH24:MI:SS'),

             TO_CHAR(Logoff_time, 'DD-MON-YY HH24:MI:SS')

             FROM DBA_AUDIT_SESSION

    提示:数据库的审计记录存放在SYS方案中的AUD$表中,可以通过DBA_AUDIT_SESSION数据字典视图来查看 SYS.AUD$。

      

    • OS_Username:使用 的操作系统账户
    • Username:Oracle 账户名。
    • Terminal:使用的 终端ID。
    • Returncode:如果为0, 连接成功;否则就检查两个 常用错误号,确定失败的原 因。检查的两个错误号为 ORA-1005和ORA-1017, 这两个错误代码覆盖了经常 发生的登录错误
    • Timestamp:登 录时间
    • Logoff_time:注销 的时间。

    3.操作审计

    对表、数据库链接、表空间、同义词、回滚段、用户或索引等数据库对象的任何操作都可被审计。这些操作 包括对象的建立、修改和删除。

    AUDIT {<审计操作>∣<系统权限名>}

            [BY <用户名> [,…n]]

            [BY {SESSION∣ACCESS}]

            [WHENEVER [NOT] SUCCESSFUL

    • <审计操作>对于每个审计操作,其产生的审计记录都包含执行操作的用户、操作类型、操作涉及的 对象及操作的日期和时间等信息。
    • <系统权限名>:指定审计的系统权限,Oracle为指定的系统权限和语句选项组提供捷径。
    • BY <用户名>:指定审计的用户。若忽略该子句,Oracle审计所有用户的语句。
    • BY SESSION:同一会话中同一类型的全部SQL语句仅写单个记录。
    • BY ACCESS:每个被审计的语句写一个记录。
    • WHENEVER SUCCESSFUL:只审计完全成功的SQL语句。包含NOT时,则只审计失败或产生错误的语句。

    例子:将用户user1的插入操作都被审计

    AUDIT INSERT TABLE BY user1;;

    如果要让审计影响角色的所有命令:

    则:AUDIT ROLE;否则禁止设置;NOAUDIT ROLE; 

    被审计的操作都会被计入一个数字代码:

    使用该查询语句可以查看:

    SELECT Action,Name
        FROM AUDIT_ACTIONS;

    已知上面的操作代码可以通过DBA_AUDIT_OBJECT视图检索登录审计:

    SELECT
        OS_Username, Username, Terminal, Owner, Obj_Name, Action_Name, 
        DECODE(Returncode, '0', 'Success',Returncode), 
        TO_CHAR(Timestamp, 'DD-MON-YYYYY HH24:MI:SS')
        FROM DBA_AUDIT_OBJECT; 

    • OS_Username: 操作系统账户。
    • Username: 账户名。
    • Terminal:所用 的终端ID。
    • Action_Name: 操作码。
    • Owner:对象拥 有者。
    • Obj_Name:对 象名。
    • Returncode:返回代 码。若是0,则表示 连接成功;否则就报 告一个错误数值。
    • Timestamp:登 录时间。

    4.对象审计

    除了系统级的对象操作外,还可以审计对象的数据处理操作。这些操作可能包括对表的选择、插入、更新 和删除操作。

    AUDIT {<审计选项>∣ALL} ON

            {[用户方案名.]<对象名> ∣ DIRECTORY <逻辑目录名>∣DEFAULT}

            [BY SESSION∣ACCESS]

            [WHENEVER [NOT] SUCCESSFUL]

    说明:

    • ALL:指定所有对象类型的对象选项。
    • <对象名>:标识审计对象。对象必须是表、视图、序列、存储过程、函数、包、快照或库,也可 是它们的同义词。
    • ON DEFAULT:默认审计选项,以后创建的任何对象都自动用这些选项审计。用于视图的默认审计 选项总是视图基表的审计选项的联合。若改变默认审计选项,先前创建的对象的审计选项保持不变。
    • ON DIRECTORY:指定审计的目录名。
    • BY SESSION:Oracle在同一会话中对在同一对象上的同一类型的全部操作写单个记录。
    • BY ACCESS:对每个被审计的操作写一个记录

    <审计选项>

    对象设计选项
    对象选项视图序列过程/函数/包显形图/快照目录对象类型环境
    ALTER××××
    AUDIT××××××××
    COMENT×××
    DELETE×××
    EXECUTE×
    GRANT×××××××××
    INDEX××
    INSERT×××
    LOCK××
    READ××
    RENAME×××
    SELECT×××××
    UPDATE×××

    例子1:对表demo的INSERT命令进行审计

    AUDIT INSERT ON SCOTT.DEMO;

    例子2:对demo表每个命令都进行审计

    AUDIT ALL ON SCOTT.DEMO;

    5.权限审计

    权限审计表示只审计某一个系统权限的使用状况。既可以审计某个用户所使用的系统权限,也可以审计所有 用户使用的系统权限

    例子:对用户user1进行系统权限的审计

    AUDIT ALTER ANY TABLE,ALTER ANY PROCEDURE BY user1 BY ACCESS

            WHENEVER NOT SUCCESSFUL;

    提示:通过查询数据字典DBA_PRIV_AUDIT_OPTS查看哪些用户进行了权限的审计。

    SELECT USER_NAME,PRIVILEGE,SUCCESS,FAILURE
        FROM DBA_PRIV_AUDIT_OPTS;

     

  • 相关阅读:
    Vulnhub系列靶机-Raven2
    (前端)「备忘录」设计模式在项目开发中的应用
    国内IB教育发展形式如何?
    深入了解ln命令:创建硬链接和符号链接的实用指南
    深入了解海豚调度DolphinScheduler
    Webpack模块联邦:微前端架构的新选择
    2023-09-09青少年软件编程(C语言)等级考试试卷(一级)解析
    汇编语言与微机原理 期末半开卷复习整理(上)
    ubuntu20.04安装genymotion3.5.1
    Spring Boot 集成 Actuator 监控工具
  • 原文地址:https://blog.csdn.net/Keep_Trying_Go/article/details/127136029