以下内容未经整理

占位

强制审计:无法关闭此审计,比如记录数据库的开启和关闭。

标准审计:

基于值得审计:创建触发器,基于值进行记录。Trigger占用资源多

细粒度审计:加一些where条件,针对触发where条件的情况进行审计。

统一审计Unified Auditing

启用统一审计之后,会产生两个角色:

  1. AUDIT_ADMIN:
  • 创建审计策略
  • 执行AUDIT和NOAUDIT语句
  • 查看审计数据
  • 管理审计线索audit trail(数据表 in AUDSYS schema)
  1. AUDIT_VIEWER:
  • 查看和分析数据
  • 执行DBMS_AUDIT_UTIL PL/SQL软件包。

Unified Auditing是True的时候,统一审计的功能才是开启的。

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

VALUE
----------------------------------------------------------------
FALSE

启用统一审计

  1. 停止lsrnctl监听
[oracle@ol7-19c ~]$ lsnrctl stop

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 05-FEB-2023 10:38:19

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ol7-19c.localdomain)(PORT=1521)))
The command completed successfully
  1. 停止数据库
[oracle@ol7-19c ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Feb 5 10:38:30 2023
Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0 SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit
  1. 验证后台进程已经停止。
[oracle@ol7-19c ~]$ pgrep -lf smon
[oracle@ol7-19c ~]$
  1. 进入$ORACLE_HOME/rdbms/lib,重新编译ins_rdbms.mk(必须在Oracle数据库关闭时操作)

    [oracle@ol7-19c ~]$ cd $ORACLE_HOME/rdbms/lib

    [oracle@ol7-19c lib]$ make -f ins_rdbms.mk uniaud_on ioracle

  2. 启用监听,开启数据库。

[oracle@ol7-19c lib]$ lsnrctl start
The command completed successfully [oracle@ol7-19c lib]$ sqlplus / as sysdba SQL> startup
ORACLE instance started. Total System Global Area 1660941720 bytes
Fixed Size 9135512 bytes
Variable Size 989855744 bytes
Database Buffers 654311424 bytes
Redo Buffers 7639040 bytes
Database mounted.
Database opened.
  1. 查看v$option里面的Unified Auditing参数,此时已经是True。
SQL> select value from v$option where parameter = 'Unified Auditing';

VALUE
----------------------------------------------------------------
TRUE

创建Unified Audit Policy

CREATE AUDIT POLICY 审计策略名

ACTIONS 操作名 ON schema对象 ONLY TOPLEVEL

EVALUATE PER SESSION | PER STATEMENT | PER INSTANCE

ONLY TOPLEVEL不记录非直接的操作。比如用户update数据库的时候被记录,而通过存储过程更新数据则不记录。这样可以减少审计日志。

PER SESSION: 一个会话只记录一次出发的审计。

PER STATEMENT: 每次执行语句触发审计都会记录。审计线索占空间最多。

PER INSTANCE: 不过触发了多少次审计操作,实例只会记录一次。审计线索占空间最少。

发生对应的操作,则会写入到审计线索当中。

审计的范围

  • 系统特权

    CREATE AUDIT POLICY audit_syspriv_pol1

    PRIVILEGES SELECT ANY TABLE, CREATE TABLE

  • 动作

    CREATE AUDIT POLICY audit_actions_pol1

    ACTIONS AUDIT, ALTER TRIGGER

  • 角色

    CREATE AUDIT POLICY audit_role_pol1

    ROLES DBA, CONNECT

  • 系统特权、动作、角色的组合(或的关系)

    CREATE AUDIT POLICY audit_mixed_pol1

    PRIVILEGES DROP ANY TABLE

    ACTIONS CREATE TABLE, DROP TABLE, TRUNCATE TABLE

    ROLE hrmanager

  • 针对于对象

    CREATE AUDIT POLICY audit_objpriv_pol1

    ACTIONS SELECT, UPDATE ON hr.employees;

  • 记录所有操作

    CREATE AUDIT POLICY audit_objpriv_pol1

    ACTIONS ALL

  • 针对存储过程

    CREATE AUDIT POLICY audit_objpriv_pol2

    ACTIONS EXECUTE, GRANT ON hr.raise_salary_proc

启用和禁用审计策略

为所有用户启用审计

AUDIT POLICY 审计名;

为某些用户启用审计

AUDIT POLICY 审计名 BY 用户1,用户2;

为所有用户启用审计并排除一些用户

AUDIT POLICY 审计名 EXCEPT 用户1,用户2;

对于操作成功和失败的时候开展审计

AUDIT POLICY 审计名 WHENEVER SUCCESSFUL;

AUDIT POLICY 审计名 WHENEVER NOT SUCCESSFUL;

禁用审计

NOAUDIT POLICY

CDB和PDB级别的审计

CDB$ROOT创建的Audit Policy应用到所有的PDB(Common).

APP$ROOT创建的Audit Policy应用到APP容器下的所有PDB(Common).

PDB创建的Audit Policy应用到这个PDB(Local)

修改审计策略

ALTER AUDIT POLICY命令用来修改审计策略。

ALTER AUDIT POLICY 审计名

ADD ACTIONS select ON hr.job_history

实作: 创建审计用户

创建audit_admin用户

SQL> create user c##audmgr container=all;
User created. SQL> alter user c##audmgr identified by oracle account unlock;
User altered. SQL> grant connect, audit_admin to c##audmgr container=all;
Grant succeeded.

创建audit_viewer用户

SQL> create user c##audvwr container=all;

User created.

SQL> alter user c##audvwr identified by oracle account unlock;

User altered.

SQL> grant connect, audit_viewer to c##audvwr;

Grant succeeded.

实作: 创建审计Policy

  1. 使用上一个实作创建的c##audmgr登录pdb1
[oracle@ol7-19c dbhome_1]$ sqlplus c##audmgr/oracle@pdb1;
SQL*Plus: Release 19.0.0.0.0 - Production on Sun Feb 5 11:20:07 2023
Version 19.3.0.0.0
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL>
  1. 创建一个audit policy,对于HR.Jobs表的任何更新,都会被审计记录。
SQL> create audit policy audit_jobs_update
2 actions update on hr.jobs; Audit policy created.
  1. 启用这个policy
SQL> audit policy audit_jobs_update;

Audit succeeded.
  1. 查询audit_unified_policies可以看得到创建的audit policy以及它的配置。
SQL> select policy_name, audit_option, object_name
2 from audit_unified_policies
3 where policy_name='AUDIT_JOBS_UPDATE'; POLICY_NAME AUDIT_OPTION OBJECT_NAME
-------------------- -------------------- --------------------
AUDIT_JOBS_UPDATE UPDATE JOBS
  1. 使用其他用户,对hr.jobs表进行更新操作。
SQL> update hr.jobs
2 set max_salary=10000
3 where job_id='ST_MAN'; 1 row updated.
  1. 切换到c##audmgr用户,查询unified_audit_policies。
SQL> col dbusername for a10
SQL> col action_name for a10
SQL> col "date" for a20
SQL> col unified_audit_policies for a22
SQL> select unified_audit_policies, dbusername, action_name,
2 to_char(event_timestamp, 'DD-MON-YY HH24:MI') "DATE"
3 from unified_audit_trail
4 where dbusername in ('PDBADMIN')
5 and action_name not in ('LOGON', 'LOGOFF')
6 order by 4; UNIFIED_AUDIT_POLICIES DBUSERNAME ACTION_NAM DATE
---------------------- ---------- ---------- ------------------
AUDIT_JOBS_UPDATE PDBADMIN UPDATE 05-FEB-23 11:37
AUDIT_JOBS_UPDATE PDBADMIN UPDATE 05-FEB-23 11:37

基于值的审计

细粒度审计

审计所有的行,

条件出错,报ORA-28112

[Oracle19C 数据库管理] 配置数据库审计的更多相关文章

  1. 机器数据的价值 - Web 访问日志和数据库审计日志

    计算机数据 大量的数据流,不断增长的来源,蕴含着巨大的价值 在 Splunk,我们大量谈及计算机数据.这些数据是指在数据中心.“物联网”和互联设备世界中运行的所有系统产生的数据.其中包括支撑组织的应用 ...

  2. mongo 3.4分片集群系列之六:详解配置数据库

    这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...

  3. oracle数据库审计

    Oracle使用大量不同的审计方法来监控使用何种权限,以及访问哪些对象.审计不会防止使用这些权限,但可以提供有用的信息,用于揭示权限的滥用和误用. 下表中总结了Oracle数据库中不同类型的审计. 审 ...

  4. 数据库审计 DBAudit - Yearning 最新版

    数据库审计 DBAudit 2019/09/26 Chenxin 数据库审计 基本概念 数据库审计(简称DBAudit)能够实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库 ...

  5. EF里的默认映射以及如何使用Data Annotations和Fluent API配置数据库的映射

    I.EF里的默认映射 上篇文章演示的通过定义实体类就可以自动生成数据库,并且EF自动设置了数据库的主键.外键以及表名和字段的类型等,这就是EF里的默认映射.具体分为: 数据库映射:Code First ...

  6. 在SQL2008配置数据库镜像1418错误的处理

    在SQL2008配置数据库镜像错误一般都由以下原因造成 1.主体.镜像服务器SQL SERVER选择本账号切保持一致 2.在数据库镜像配置向导中的“服务账号”选项中请选择需要同步数据库的登陆名,例如数 ...

  7. Android通过xml文件配置数据库

    之前一段时间自己封装了两个数据库,一个是ORM数据库,另一个是事件流数据库,项目相应的地址如下: ORM数据库:https://github.com/wenjiang/SimpleAndroidORM ...

  8. SQL Server代理(4/12):配置数据库邮件

    SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 在以前的文章里我们看到,SQL Serve ...

  9. 新建Oracle数据库时,提示使用database control配置数据库时,要求在当前oracle主目录中配置监听程序

    新建一个oracle数据库时,当提示使用database control配置数据库时,要求在当前oracle主目录中配置监听程序等字样的时候,问题是那个监听的服务没有启动,解决方法如下: 打开cmd命 ...

  10. SQL Server 2012 配置数据库邮件

    发送和接受邮箱不能用QQ邮箱,可以用163网易邮箱,同时要求要发送邮件的计算机能上外网 查看163网易邮箱的发送和接收服务器的方法如下 在数据库的管理中,右击数据库邮件,选择配置数据库邮件 出现对话框 ...

随机推荐

  1. 3D场景建模

    在这个虚拟现实的世界里,我们将会和你一起在云端构建属于自己的世界. 这里有一款3D场景编辑器可以让你在上面进行编辑.设计及渲染. 它是一个非常炫酷的软件,在这里,你可以尽情发挥你的想象力,创造出独一无 ...

  2. word2021自带viso屏幕闪烁、抖动问题解决

    文件--选项-->高级-->显示-->勾选禁用硬件图像加速

  3. Kali配置gmssl密码算法库

    Kali配置gmssl密码算法库 一.密码算法库的下载 https://github.com/guanzhi/GmSSL/releases 二.安装配置 1 解压 把刚刚下载的GmSSL 3.0.0. ...

  4. 【补题】The 2022 SDUT Summer Trials

    比赛链接 The 2022 SDUT Summer Trials A. Ginger's number 样例恶臭(恼) 签到题 简单分解因数就会发现要求的就是\(gcd\),直接算即可,时间复杂度\( ...

  5. fiddler的界面详细讲解

    一.fiddler首页概述

  6. 如何删除Word文档中的空白页

    需求 平常我们写 Office 文档的时候,经常会不小心多加几页空白,那么如何删除 word 文档中的空白页呢? 小编结合网友提供的办法和亲身测试的操作经验,给大家提供几个可行的方案. 原文:如何删除 ...

  7. 预处理指令详解(C语言

    一.预处理符号 预处理符号是C语言内置的符号,是可以直接使用的. 其中,若遵顼ANSI C,则__STDC__ 为1,否则未定义. 二.#define 1)定义标识符 define可以用来定义标识符, ...

  8. win10 扩展c盘 “PARTITION_BASIC_DATA_GUID"

    一不小心化身为c盘战士了,系统卡到不行 于是通过pe登入系统(我自己用的wintogo),然后下载傲梅分区助手(嘎嘎好用) 傲梅官网 https://www.disktool.cn/download. ...

  9. PK获取面积

    BOOL PK_AskFaceAreas(tag_t face_tag, double tol, double &areas) {//获得面积 tag_t ps_tag = NULL_TAG; ...

  10. 【Linux】有名管道实现进程间通信——一个简单聊天程序

    有名管道实现简单聊天程序 1. "你来我往"式简单聊天 函数功能:简单聊天程序,两个程序a和b,a向b发送信息,b接收信息,b向a发送信息,a接收信息:... 源码参考: chat ...