[Oracle19C 数据库管理] 配置数据库审计
以下内容未经整理
占位
强制审计:无法关闭此审计,比如记录数据库的开启和关闭。
标准审计:
基于值得审计:创建触发器,基于值进行记录。Trigger占用资源多
细粒度审计:加一些where条件,针对触发where条件的情况进行审计。
统一审计Unified Auditing
启用统一审计之后,会产生两个角色:
- AUDIT_ADMIN:
- 创建审计策略
- 执行AUDIT和NOAUDIT语句
- 查看审计数据
- 管理审计线索audit trail(数据表 in AUDSYS schema)
- AUDIT_VIEWER:
- 查看和分析数据
- 执行DBMS_AUDIT_UTIL PL/SQL软件包。
Unified Auditing是True的时候,统一审计的功能才是开启的。
select value from v$option where parameter = 'Unified Auditing';
VALUE
----------------------------------------------------------------
FALSE
启用统一审计
- 停止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
- 停止数据库
[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
- 验证后台进程已经停止。
[oracle@ol7-19c ~]$ pgrep -lf smon
[oracle@ol7-19c ~]$
进入$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启用监听,开启数据库。
[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.
- 查看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
- 使用上一个实作创建的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>
- 创建一个audit policy,对于HR.Jobs表的任何更新,都会被审计记录。
SQL> create audit policy audit_jobs_update
2 actions update on hr.jobs;
Audit policy created.
- 启用这个policy
SQL> audit policy audit_jobs_update;
Audit succeeded.
- 查询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
- 使用其他用户,对hr.jobs表进行更新操作。
SQL> update hr.jobs
2 set max_salary=10000
3 where job_id='ST_MAN';
1 row updated.
- 切换到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 数据库管理] 配置数据库审计的更多相关文章
- 机器数据的价值 - Web 访问日志和数据库审计日志
计算机数据 大量的数据流,不断增长的来源,蕴含着巨大的价值 在 Splunk,我们大量谈及计算机数据.这些数据是指在数据中心.“物联网”和互联设备世界中运行的所有系统产生的数据.其中包括支撑组织的应用 ...
- mongo 3.4分片集群系列之六:详解配置数据库
这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...
- oracle数据库审计
Oracle使用大量不同的审计方法来监控使用何种权限,以及访问哪些对象.审计不会防止使用这些权限,但可以提供有用的信息,用于揭示权限的滥用和误用. 下表中总结了Oracle数据库中不同类型的审计. 审 ...
- 数据库审计 DBAudit - Yearning 最新版
数据库审计 DBAudit 2019/09/26 Chenxin 数据库审计 基本概念 数据库审计(简称DBAudit)能够实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库 ...
- EF里的默认映射以及如何使用Data Annotations和Fluent API配置数据库的映射
I.EF里的默认映射 上篇文章演示的通过定义实体类就可以自动生成数据库,并且EF自动设置了数据库的主键.外键以及表名和字段的类型等,这就是EF里的默认映射.具体分为: 数据库映射:Code First ...
- 在SQL2008配置数据库镜像1418错误的处理
在SQL2008配置数据库镜像错误一般都由以下原因造成 1.主体.镜像服务器SQL SERVER选择本账号切保持一致 2.在数据库镜像配置向导中的“服务账号”选项中请选择需要同步数据库的登陆名,例如数 ...
- Android通过xml文件配置数据库
之前一段时间自己封装了两个数据库,一个是ORM数据库,另一个是事件流数据库,项目相应的地址如下: ORM数据库:https://github.com/wenjiang/SimpleAndroidORM ...
- SQL Server代理(4/12):配置数据库邮件
SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 在以前的文章里我们看到,SQL Serve ...
- 新建Oracle数据库时,提示使用database control配置数据库时,要求在当前oracle主目录中配置监听程序
新建一个oracle数据库时,当提示使用database control配置数据库时,要求在当前oracle主目录中配置监听程序等字样的时候,问题是那个监听的服务没有启动,解决方法如下: 打开cmd命 ...
- SQL Server 2012 配置数据库邮件
发送和接受邮箱不能用QQ邮箱,可以用163网易邮箱,同时要求要发送邮件的计算机能上外网 查看163网易邮箱的发送和接收服务器的方法如下 在数据库的管理中,右击数据库邮件,选择配置数据库邮件 出现对话框 ...
随机推荐
- 3D场景建模
在这个虚拟现实的世界里,我们将会和你一起在云端构建属于自己的世界. 这里有一款3D场景编辑器可以让你在上面进行编辑.设计及渲染. 它是一个非常炫酷的软件,在这里,你可以尽情发挥你的想象力,创造出独一无 ...
- word2021自带viso屏幕闪烁、抖动问题解决
文件--选项-->高级-->显示-->勾选禁用硬件图像加速
- Kali配置gmssl密码算法库
Kali配置gmssl密码算法库 一.密码算法库的下载 https://github.com/guanzhi/GmSSL/releases 二.安装配置 1 解压 把刚刚下载的GmSSL 3.0.0. ...
- 【补题】The 2022 SDUT Summer Trials
比赛链接 The 2022 SDUT Summer Trials A. Ginger's number 样例恶臭(恼) 签到题 简单分解因数就会发现要求的就是\(gcd\),直接算即可,时间复杂度\( ...
- fiddler的界面详细讲解
一.fiddler首页概述
- 如何删除Word文档中的空白页
需求 平常我们写 Office 文档的时候,经常会不小心多加几页空白,那么如何删除 word 文档中的空白页呢? 小编结合网友提供的办法和亲身测试的操作经验,给大家提供几个可行的方案. 原文:如何删除 ...
- 预处理指令详解(C语言
一.预处理符号 预处理符号是C语言内置的符号,是可以直接使用的. 其中,若遵顼ANSI C,则__STDC__ 为1,否则未定义. 二.#define 1)定义标识符 define可以用来定义标识符, ...
- win10 扩展c盘 “PARTITION_BASIC_DATA_GUID"
一不小心化身为c盘战士了,系统卡到不行 于是通过pe登入系统(我自己用的wintogo),然后下载傲梅分区助手(嘎嘎好用) 傲梅官网 https://www.disktool.cn/download. ...
- PK获取面积
BOOL PK_AskFaceAreas(tag_t face_tag, double tol, double &areas) {//获得面积 tag_t ps_tag = NULL_TAG; ...
- 【Linux】有名管道实现进程间通信——一个简单聊天程序
有名管道实现简单聊天程序 1. "你来我往"式简单聊天 函数功能:简单聊天程序,两个程序a和b,a向b发送信息,b接收信息,b向a发送信息,a接收信息:... 源码参考: chat ...