当前位置: 首页 > news >正文

Oracle架构之物理存储之审计文件

文章目录

  • 1 审计文件(audit files)
    • 1.1 定义
    • 1.2 查看审计信息
    • 1.3 审计相关参数
    • 1.4 审计的类型
      • 1.4.1 语句审计
      • 1.4.2 权限审计
      • 1.4.3 对象审计
      • 1.4.4 细粒度的审计
    • 1.5 与审计相关的数据字典视图

1 审计文件(audit files)

1.1 定义

审计(Audit)用于监视用户对数据库的操作,审计记录保存在数据字典表中,存储在 system 表空间中的 SYS.AUD$ 表中(可通过视图 dba_audit_trail 查看)或审计文件中(默认位置为 ORACLEBASE/admin/ORACLE_BASE/admin/ORACLEBASE/admin/ORACLE_SID/adump/)。

审计是对特定的用户动作的监控和记录,通常用于:

  • 审查可疑的活动
  • 监视和收集关于指定数据库活动的数据

不管是否打开数据库的审计功能,以下这些操作会强制被记录:用管理员权限连接 Instance、启动数据库、关闭数据库。
审计文件的位置由参数 audit_file_dest 决定

1.2 查看审计信息

SQL> show parameter audit_file_dest NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest 	     string	      /u01/app/oracle/admin/orcl/adump查看审计文件:
[oracle@rac1 adump]$ cd /u01/app/oracle/admin/orcl/adump

1.3 审计相关参数

和审计有关的参数主要有以下几个:

show parameter auditNAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest 	     string	      /u01/app/oracle/admin/orcl/adump
audit_sys_operations	 boolean	 FALSE
audit_syslog_level		 string
audit_trail			     string	 DB
  • audit_file_dest
    如果AUDIT_TRAIL = OS,则审计记录的文件,存放在 audit_file_dest 参数指定的目录中。如果指定的路径不存在,会造成数据库无法启动
  • Audit_trail
    该参数用于关闭或开启审计功能,取值如下:
    • None:不做审计。
    • DB:启用数据库审计,将审计记录保存在数据库的 sys.AUD$ 的表中。
    • OS:启用数据库审计,将审计记录保存在操作系统文件中,文件位置由 audit_file_dest 参数指定。
  • Audit_sys_operations
    指定是否启用对 SYS 用户的审计,默认为 false。当设置为 true 时,所有 sys 用户(包括以 sysdbasysoper 身份登录的用户)的操作都会被记录。这些审计记录不会保存在 aud$ 表中,而是被保存到操作系统文件中。当设置为 false 时,只记录 sys 用户的连接、数据库的启动和停止。

1.4 审计的类型

1.4.1 语句审计

对某种类型的SQL语句审计,不指定结构或对象如:audittable会审计数据库中所有的create table、drop table、truncate table语句,alter session by scott会审计scott用户所有的数据库连接;

打开关闭audit 命令的格式如下所示:

AUDIT sql_statement_clause 
BY {SESSION | ACCESS} WHENEVER [NOT] SUCCESSFUL; 

下表是可以审计的语句类型:

语句选项SQL操作
ALTER SYSTEM所有ALTER SYSTEM选项,例如,动态改变实例参数,切换到下一个日志文件组,以及终止用户会话
CLUSTERCREATE、ALTER、DROP或TRUNCATE集群
CONTEXTCREATE CONTEXT或DROP CONTEXT
DATABASE LINKCREATE或DROP数据库链接
DIMENSIONCREATE、ALTER或DROP维数
DIRECTORYCREATE或DROP目录
INDEXCREATE、ALTER或DROP索引
MATERIALIZED VIEWCREATE、ALTER或DROP物化视图
NOT EXISTS由于不存在的引用对象而造成的 SQL 语句的失败
PROCEDURECREATE或DROP FUNCTION、LIBRARY、PACKAGE、PACKAGE BODY或PROCEDURE
PROFILECREATE、ALTER或DROP配置文件
PUBLIC DATABASE LINKCREATE或DROP公有数据库链接
PUBLIC SYNONYMCREATE或DROP公有同义词
ROLECREATE、ALTER、DROP或SET角色
ROLLBACK SEGMENTCREATE、ALTER或DROP回滚段
SEQUENCECREATE或DROP序列
SESSION登录和退出
SYNONYMCREATE或DROP同义词
SYSTEM AUDIT系统权限的AUDIT或NOAUDIT
SYSTEM GRANTGRANT或REVOKE系统权限和角色
TABLECREATE、DROP或TRUNCATE表
TABLESPACECREATE、ALTER或DROP表空间
TRIGGERCREATE、ALTER(启用/禁用)、DROP触发器;具有ENABLE ALL TRIGGERS或DISABLE ALL TRIGGERS的ALTER TABLE
TYPECREATE、ALTER和DROP类型以及类型主体
USERCREATE、ALTER或DROP用户
VIEWCREATE或DROP视图
ALTER SEQUENCE任何ALTER SEQUENCE命令
ALTER TABLE任何ALTER TABLE命令
COMMENT TABLE添加注释到表、视图、物化视图或它们中的任何列
DELETE TABLE删除表或视图中的行
EXECUTE PROCEDURE执行程序包中的过程、函数或任何变量或游标
GRANT DIRECTORYGRANT或REVOKE DIRECTORY对象上的权限
GRANT PROCEDUREGRANT或REVOKE过程、函数或程序包上的权限
GRANT SEQUENCEGRANT或REVOKE序列上的权限
GRANT TABLEGRANT或REVOKE表、视图或物化视图上的权限
GRANT TYPEGRANT或REVOKE TYPE上的权限
INSERT TABLEINSERT INTO表或视图
LOCK TABLE表或视图上的LOCK TABLE命令
SELECT SEQUENCE引用序列的CURRVAL或NEXTVAL的任何命令
SELECT TABLESELECT FROM 表、视图或物化视图
UPDATE TABLE在表或视图上执行UPDATE

注意:
从Oracle Database 11g开始,只有在初始参数AUDIT_TRAIL被设置为DB_EXTENDED时,才填充DBA_AUDIT_TRAIL中的列SQL_TEXT和SQL_BIND。默认情况下,AUDIT_TRAIL的值是DB。
为了关闭HR.JOBS表上KSHELTON的审计,可以使用noaudit命令,如下所示:

SQL>` noaudit index by kshelton; Noaudit succeeded.

也可能希望按常规方式审计成功的和不成功的登录,这需要两个audit命令:

SQL> audit session whenever successful; Audit succeeded. 
SQL> audit session whenever not successful; Audit succeeded. 

1.4.2 权限审计

当用户使用了该权限则被审计,如:CREATE TABLE或ALTER INDEX和语句审计一样,权限审计可以指定一个或多个特定的用户作为审计的目标;

打开关闭权限审计系统权限具有与语句审计相同的基本语法,但审计系统权限是在sql_statement_clause中,而不是在语句中,指定系统权限。
例如,可能希望将ALTER TABLESPACE权限授予所有的DBA,但希望在发生这种情况时生成审计记录。启用对这种权限的审计的命令看起来类似于语句审计:

SQL> audit alter tablespace by access whenever successful; 
Audit succeeded.

每次成功使用 ALTER TABLESPACE权限时,都会将一行内容添加到SYS.AUD$

使用SYSDBA和SYSOPER权限或者以SYS用户连接到数据库的系统管理员可以利用特殊的审计。为了启用这种额外的审计级别,可以设置初始参数AUDIT_SYS_OPERATIONSTRUE。这种审计记录发送到与操作系统审计记录相同的位置。因此,这个位置是和操作系统相关的。当使用其中一种权限时执行的所有SQL语句,以及作为用户SYS执行的任何SQL语句,都会发送到操作系统审计位置。

1.4.3 对象审计

审计特定模式对象上运行的特定语句,如:EMP表上的UPDATE语句模式对象审计应用于数据库中的所有用户;

打开关闭操作
对象审计的访问看起来类似于语句审计和权限审计:

AUDIT schema_object_clause BY {SESSION | ACCESS} WHENEVER [NOT] SUCCESSFUL; 

schema_object_clause 指定对象访问的类型以及访问的对象。可以审计特定对象上14种不同的操作类型,下表中列出了这些操作。

对象选项说明
ALTER改变表、序列或物化视图
AUDIT审计任何对象上的命令
COMMENT添加注释到表、视图或物化视图
DELETE从表、视图或物化视图中删除行
EXECUTE执行过程、函数或程序包
FLASHBACK执行表或视图上的闪回操作
GRANT授予任何类型对象上的权限
INDEX创建表或物化视图上的索引
INSERT将行插入表、视图或物化视图中
LOCK锁定表、视图或物化视图
READ对DIRECTORY对象的内容执行读操作
RENAME重命名表、视图或过程
SELECT从表、视图、序列或物化视图中选择行
UPDATE更新表、视图或物化视图

1.4.4 细粒度的审计

根据访问对象的内容来审计表访问和权限使用程序包DBMS_FGA来建立特定表上的策略;

从Oracle9i开始,通过引入细粒度的对象审计,或称为FGA,审计变得更为关注某个方面,并且更为精确。由称为DBMS_FGA的PL/SQL程序包实现FGA。

使用标准的审计,可以轻松发现访问了哪些对象以及由谁访问,但无法知道访问了哪些行或列。细粒度的审计可解决这个问题,它不仅为需要访问的行指定谓词(或where子句),还指定了表中访问的列。通过只在访问某些行和列时审计对表的访问,可以极大地减少审计表条目的数量。

程序包DBMS_FGA具有4个过程:

  • ADD_POLICY:添加使用谓词和审计列的审计策略
  • DROP_POLICY:删除审计策略
  • DISABLE_POLICY:禁用审计策略,但保留与表或视图关联的策略
  • ENABLE_POLICY:启用策略

1.5 与审计相关的数据字典视图

下表包含了与审计相关的数据字典视图。

数据字典视图说 明
AUDIT_ACTIONS包含审计跟踪动作类型代码的描述,例如INSERT、DROP VIEW、DELETE、LOGON和LOCK
all_def_audit_opts查看数据库用 on default 子句设置了哪些默认对象审计
DBA_AUDIT_OBJECT与数据库中对象相关的审计跟踪记录
DBA_AUDIT_POLICIES数据库中的细粒度审计策略
DBA_AUDIT_SESSION与CONNECT和DISCONNECT相关的所有审计跟踪记录
DBA_AUDIT_STATEMENT与GRANT、REVOKE、AUDIT、NOAUDIT和ALTER SYSTEM命令相关的审计跟踪条目
DBA_AUDIT_TRAIL包含标准审计跟踪条目。USER_AUDIT_TRAILUSER_TRAIL_AUDIT只包含已连接用户的审计行
DBA_FGA_AUDIT_TRAIL细粒度审计策略的审计跟踪条目
DBA_COMMON_AUDIT_TRAIL将标准的审计行和细粒度的审计行结合在一个视图中
DBA_OBJ_AUDIT_OPTS对数据库对象生效的审计选项
DBA_PRIV_AUDIT_OPTS对系统权限生效的审计选项
DBA_STMT_AUDIT_OPTS对语句生效的审计选项

相关文章:

Oracle架构之物理存储之审计文件

文章目录 1 审计文件(audit files)1.1 定义1.2 查看审计信息1.3 审计相关参数1.4 审计的类型1.4.1 语句审计1.4.2 权限审计1.4.3 对象审计1.4.4 细粒度的审计 1.5 与审计相关的数据字典视图 1 审计文件(audit files) 1.1 定义 审…...

DAY6 面向对象

概念 对象是一种特殊的数据结构,可以用来记住一个事物的数据,从而代表该事物,可以理解为一个模板表,总而言之万物皆对象,比如一个人、一个物体等。 怎么创建对象 先设计对象的模板,也就是对象的设计图&a…...

代码随想录 (三)—— 哈希表部分刷题

当我们想使用哈希法来解决问题的时候,我们一般会选择如下三种数据结构。 数组set (集合)map(映射) 在java中有就是,hashmap, LinkedHashMap, TreeMap ,HashTable 等 总结一下,当我们遇到了要快速判断一个…...

搜维尔科技:使用 SenseGlove Nova 2 远程操作机械手,实现了对鸡蛋的精细操控

使用SenseGlove Nova 2远程操作机械手,实现了对鸡蛋的精细操控 搜维尔科技:使用 SenseGlove Nova 2远程操作机械手,实现了对鸡蛋的精细操控...

Mybatis是什么?优缺点分别有哪些?

MyBatis 是一个开源的持久层框架,它提供了将 SQL 语句和 Java 对象进行映射的功能,使得开发者可以通过简单的配置来实现数据库操作,减少了手写 SQL 的工作量。 MyBatis 的优点: 1. 简单易用:MyBatis 采用了简单的配置…...

opencascade鼠标拖拽框选功能

1.首先在OccView中添加用于显示矩形框的类 //! rubber rectangle for the mouse selection.Handle(AIS_RubberBand) mRectBand; 2.设置框选的属性 mRectBand new AIS_RubberBand(); //设置属性 mRectBand->SetLineType(Aspect_TOL_SOLID); //设置变宽线型为实线 mRe…...

docker 部署 postgres

这里以postgres:12.6为例: 1. 拉取postgres镜像 docker pull postgres:12.62. 创建挂载目录 mkdir -p /mydata/docker/postgres-1/data3. 启动postgres容器 docker run --name postgres-12.6 \-e POSTGRES_PASSWORD123456 \-p 5432:5432 \-v /mydata/docker/pos…...

【重学 MySQL】五十、添加数据

【重学 MySQL】五十、添加数据 使用INSERT INTO语句添加数据基本语法示例插入多行数据注意事项 使用LOAD DATA INFILE语句批量添加数据其他插入数据的方式注意事项 在MySQL中,添加数据是数据库操作中的基本操作之一。 使用INSERT INTO语句添加数据 使用 INSERT IN…...

硬货!Zabbix监控AIX系统服务案例

本文将介绍如何使用Zabbix自定义键值脚本方式监控AIX 系统IBM CICS中间件进程服务以及日志文件等信息。 Customer Information Control System (CICS) Transaction Server 是 IBM 针对 z/OS 的多用途事务处理软件。这是一个功能强大的应用程序服务器,用于大型和小型…...

python常见面试题

1、什么是Python?为什么它会如此流行? Python是一种解释的、高级的、通用的编程语言。 Python的设计理念是通过使用必要的空格与空行,增强代码的可读性。 它之所以受欢迎,就是因为它具有简单易用的语法。 ▍2、为什么Python执…...

低功耗接地故障控制器D4145

一、概述 D4145 是一个接地故障断路器。它能够检测到不良的接地条件,譬如装置接触到水时,它会在有害或致命的电击发生之前将电路断开。 D4145能检测并保护从火线到地线,从零线到地线的故障.这种简单而传统的电路设计能够确保其应用自如和长时间的可靠性。…...

SpringMVC的处理流程

深入理解 SpringMVC 的请求处理流程:从用户请求到视图渲染的八个步骤 SpringMVC 是当前流行的基于 Java 的 Web 框架之一,它通过前端控制器 DispatcherServlet 将用户的 HTTP 请求统一接收并处理,随后将请求分发到具体的处理器(通…...

SpringBoot统一日志框架

在项目开发中,日志十分的重要,不管是记录运行情况还是定位线上问题,都离不开对日志的分析。 1.日志框架的选择 市面上常见的日志框架有很多,它们可以被分为两类:日志门面(日志抽象层)和日志实…...

vue-live2d看板娘集成方案设计使用教程

文章目录 前言v1.1.x版本:vue集成看板娘(暂不使用,在v1.2.x已替换)集成看板娘实现看板娘拖拽效果方案资源备份存储 当前最新调研:2024.10.2开源方案1:OhMyLive2D(推荐)开源方案2&…...

springboot接口如何支持400并发量

Spring Boot 本身并不直接限制并发量,但是你可以通过配置来优化应用以处理更多的并发请求。以下是一些关键配置和优化技巧: 服务器连接配置(application.properties 或 application.yml): # 服务器连接数配置 server.tomcat.max…...

Verilog中的: `+:` 和 `-:`

: 和 -: 标准解释 logic [15:0] down_vect; logic [0:15] up_vect;down_vect[lsb_base_expr : width_expr] up_vect [msb_base_expr : width_expr] down_vect[msb_base_expr -: width_expr] up_vect [lsb_base_expr -: width_expr]举例 reg [31:0] dword; reg [7:0] byte0…...

为何四次挥手要等待2MSL

参考文章&#xff1a;https://zhuanlan.zhihu.com/p/204988465 A主动关闭连接一方&#xff0c;B是被动关闭一方 我们假设A发送了ACK报文后过了一段时间t之后B才收到该ACK&#xff0c;则有 0 < t < MSL。因为A并不知道它发送出去的ACK要多久对方才能收到&#xff0c;所以…...

C++——模拟实现list

1.初步实现结点和链表 namespace jxy {template<class T>struct list_node{T _data;list_node<T>* _prev;list_node<T>* _next;list_node(const T& x T()):_data(x),_prev(nullptr),_next(nullptr){}};template<class T>class list//list的框架本…...

React中useState、useReducer与useRef

useState 详解 useState 是 React 函数组件中用于管理组件状态的 Hook。它提供了一种简洁的方式来在函数组件中添加状态&#xff0c;并在状态改变时触发组件重新渲染。以下是 useState 的详细解析&#xff1a; 一、基本概念 useState 是一个函数&#xff0c;它接收一个初始状…...

ReGCL Rethinking Message Passingin Graph Contrastive Learning

AAAI24 推荐指数&#xff1a; #paper/⭐ 总体说&#xff1a;利用梯度对对比正负样本加权的。个人觉得和与正负样本加权没有区别&#xff0c;读完之后不想做笔记了。...

ubutun安装ffmpeg

安装依赖 sudo apt-get install yasm sudo apt-get install libsdl1.2-dev sudo apt-get install libsdl2-dev 下载安装 tar -zxvf filename.gz ./configure --enable-shared --prefix/usr/local/ffmpeg make -j4 sudo make install 添加路径 路径/usr/local/ffmpeg…...

Vue的基本用法及模板语法

Vue.js使用了基于 HTML 的模板语法&#xff0c;允许开发者声明式地将 DOM 绑定至底层 Vue实例的数据。所有 Vue.js的模板都是合法的 HTML&#xff0c;所以能被遵循规范的浏览器和 HTML 解析器解析。 在底层的实现上&#xff0c;Vue将模板编译成虚拟 DOM 渲染函数。结合响应系…...

Redis数据库与GO完结篇:redis操作总结与GO使用redis

一、redis操作总结 由于写redis命令的时候有提示符&#xff0c;所以下表只给出命令名称 数据类型操作简介字符串GET, SET, MGET, MSET, SETEX,DEL最基本的数据类型&#xff0c;存储任意二进制数据&#xff0c;支持简单操作和原子计数。适合存储重复数据。哈希HSET, HGET, HDE…...

《重生到现代之从零开始的C语言生活》—— 动态内存管理

动态内存分配 我们在开辟内存的时候就是 int a 3;这样 但是这样开的空间大小是固定的&#xff0c;且大小不能调整 但是如果我们用动态内存开辟的话&#xff0c;就可以自己申请和释放空间、 malloc 是C语言提供的一个开辟动态空间的函数 void* malloc (size_t size);//si…...

四、Spring Boot集成Spring Security之登录登出业务逻辑

Spring Boot集成Spring Security之登录登出业务逻辑 一、概要说明二、基于内存的用户名密码1、默认用户名密码2、自定义用户名密码3、为方便测试添加测试接口TestController 三、登录登出重要概念介绍四、登录业务逻辑1、登录业务相关过滤器2、访问业务请求处理流程①、访问业务…...

pipe和pipefd

Linux 中 pipe 的详细介绍 在 Linux 中&#xff0c;pipe 是一个系统调用&#xff0c;用于创建一个管道&#xff0c;这是一种用于进程间通信&#xff08;IPC&#xff09;的机制。管道允许两个进程之间进行单向数据传输&#xff0c;通常是一个进程向管道写入数据&#xff0c;而另…...

无人机之飞控仿真技术篇

一、无人机飞控仿真技术的定义 无人机飞控仿真技术主要是指飞行控制系统仿真&#xff0c;它是以无人机的运动情况为研究对象&#xff0c;面向对象的复杂系统仿真。通过该技术&#xff0c;可以模拟无人机的飞行过程&#xff0c;评估飞行控制系统的性能&#xff0c;优化飞行参数&…...

Tetra Pak利乐触摸屏维修beijer北尔触摸屏维修E1151

TetraPak利乐包装机触摸显示屏维修&#xff0c;北尔全系列型号触摸屏修理 维修注意事项&#xff1a; 上电前&#xff0c;应检查负载是否接上或是否正确&#xff1b; 测量电压时&#xff0c;确认档位是否在电压档。要确认仪器仪表的量程应大于测试点的电压&#xff1b; 更换电…...

Python_网络编程(IP 端口 协议)

网络编程&#xff1a; 互联网时代&#xff0c;现在基本上所有的程序都是网络程序&#xff0c;很少有单机版的程序了。网络编程就是如何在程序中实现两台计算机的通信。Python语言中&#xff0c;提供了大量的内置模块和第三方模块用于支持各种网络访问&#xff0c;而且Python语言…...

Adobe Acrobat提示“3D数据解析错误”

原因&#xff1a;在使用Adobe Acrobat打开3D PDF时&#xff0c;因当前Adobe Acrobat的配置存在错误&#xff0c;所以无法打开 解决方法&#xff1a;重新生成配置 首先到达下面的路径C:\Users\你的用户名\AppData\Local\Adobe\Acrobat 下面为我的路径内容 若该路径下存在文件…...