[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网易邮箱的发送和接收服务器的方法如下 在数据库的管理中,右击数据库邮件,选择配置数据库邮件 出现对话框 ...
随机推荐
- C语言数据结构串的表示与操作的实现
串的堆分配储存表示 typedef struct { char* ch;//若是非空字符串,则按串长分配存储区,否则ch为NULL int length;//串长度 } HString; 生成一个其值 ...
- 如何设置VBA代码的密码?如何取消VBA代码的密码?
经常有网友问,用Access把软件开发好了,怎么样设置VBA代码的密码?以保护自己的代码不被同事修改.这里简单整理了一下.设置VBA代码的密码及取消VBA代码的密码步骤如下:1.打开任意一个窗体,进入 ...
- IIS部署WGCMS
一.下载所需的微软程序文件 安装插件:下载后直接安装就可以了,没有什么好说的. 安装1:点击下载 安装2:点击下载 二.在IIS上添加应用程序池 打开IIS,按照图片所示:在"应用程序池&q ...
- SpringBoot常用注解大全
常用注解概览 这里整理了一张SpringBoot常用注解的思维导图,本文主要讲解这些注解的用法. 组件相关注解 @ComponentScan 默认扫描当前包及其子包下面被@component,@Con ...
- 40.Ribbon和Feign
优先级:全局代码 < 全局属性 < 细粒度代码 < 细粒度属性 推荐属性配置
- VMware-SSH协议的认证方式
SSH1协议支持非对称密钥认证方式.口令认证,无法保证连接的完整性. SSH2协议支持SSH1协议支持的所有认证方式,增加数据保密性. 基于主机的认证方式[!不安全!] 当本地计算机收到执行远程命令的 ...
- flask 项目构建
创建虚拟环境 mkvirtualenv 环境名 安装所需要的包 pip install flask == 0.12.4 pip install redis pip install flask-ses ...
- PHP面向对象(二)
构造函数 PHP 5 允行开发者在一个类中定义一个方法作为构造函数.具有构造函数的类会在每次创建新对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作. 代码如下: <?php//类的 ...
- Java面向对象之回顾方法及加深
回顾方法及加深 方法的定义 修饰符 返回类型 break和return的区别 1.break:跳出switch,结束循环 2.return:代表方法结束,返回一个结果 方法名:注意规范.见名知意 参数 ...
- wpa_supplicant 交叉编译
交叉编译 wpa_supplicant 指定交叉编译环境: CC=arm-linux-xxxxx-gcc 运行错误 : wlan0: Unsupported driver 'nl80211' 在.c ...