百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

Oracle Database 23ai 中的审计增强功能

csdh11 2024-12-03 11:53 5 浏览

传统审计在 Oracle 21c 中已弃用,并且在 Oracle 23ai 中已不再支持。

一、审核表和视图的各个列

在 Oracle 23ai 中,我们可以对表和视图的各个列创建审计策略,这使我们能够通过忽略不影响感兴趣列的操作来精简审计跟踪的内容。对于表或视图列,我们可以审核以下操作

ALL, ALTER, AUDIT, COMMENT, DELETE, GRANT, INDEX, INSERT, SELECT, UPDATE

详细的可审计的对象操作

对象

可以被审核的操作

Directory

AUDIT, GRANT, READ

Function

AUDIT, EXECUTE, GRANT

Java schema objects (source, class, resource)

AUDIT, EXECUTE, GRANT

Library

EXECUTE, GRANT

Materialized views

ALTER, AUDIT, COMMENT, DELETE, INDEX, INSERT, LOCK, SELECT, UPDATE

Mining Model

AUDIT, COMMENT, GRANT, RENAME, SELECT

Object type

ALTER, AUDIT, GRANT

Package

AUDIT, EXECUTE, GRANT

Procedure (including triggers)

AUDIT, EXECUTE, GRANT

Sequence

ALTER, AUDIT, GRANT, SELECT

Table

ALTER, AUDIT, COMMENT, DELETE, FLASHBACK, GRANT, INDEX, INSERT, LOCK, MERGE, RENAME, SELECT, UPDATE

Table or view column

ALL, ALTER, AUDIT, COMMENT, DELETE, GRANT, INDEX, INSERT, SELECT, UPDATE

View

AUDIT, COMMENT, DELETE, FLASHBACK, GRANT, INSERT, LOCK, MERGE, RENAME, SELECT, UPDATE


二、测试示例

为了演示这一点,我们创建一个测试表。


2.1 、创建测试用户

sqlplus sys/oracle@db1:1521/freepdb1 as sysdba
create user testuser1 identified by testuser1;
grant connect,resource to testuser1;
ALTER USER testuser1 QUOTA unlimited ON users;


2.2 创建测试表

sqlplus sys/oracle@db1:1521/freepdb1 as sysdba

drop table if exists audit_test_tab purge;

create table audit_test_tab (
 id number generated always as identity,
 col1 varchar2(10),
 col2 varchar2(10),
 col3 varchar2(10)
);

insert into audit_test_tab (col1, col2) values ('apple', 'banana');
commit;


2.3 管理员用户配置审计策略

我们连接到特权用户并创建新的审核策略。我们想要审核 COL1 或 COL2 上的更新以及 COL2 的查询。请注意,我们提供了审核操作适用的以逗号分隔的列列表。

sqlplus sys/oracle@db1:1521/freepdb1 as sysdba
noaudit policy test_audit_policy;
drop audit policy test_audit_policy;
create audit policy test_audit_policy
 actions update(col1, col2) on testuser1.audit_test_tab,
select(col2) on testuser1.audit_test_tab
 container = current;
audit policy test_audit_policy;

2.4 审计跟踪

我们检查针对表的操作的审计跟踪,我们可以看到没有审计任何操作。

conn testuser1/testuser1@db1:1521/freepdb1
column event_timestamp format a30
column dbusername format a10
column action_name format a20
column object_schema format a10
column object_name format a20
column sql_text format a40
select event_timestamp,
 dbusername,
 action_name,
 object_schema,
 object_name,
 sql_text
from unified_audit_trail
where object_name = 'AUDIT_TEST_TAB'
order BY event_timestamp;
no rows selected
SQL>

2.5 测试表操作

我们对测试表执行一些操作,其中一些是可审计的操作。

conn testuser1/testuser1@db1:1521/freepdb1


-- Not audited.
insert into audit_test_tab (col1, col2) values ('apple2', 'banana2');

update audit_test_tab
set col3 = 'pear'
where col3 is null;
commit;
select id from audit_test_tab;
 ID
----------
1
2

SQL>

-- Audited.
update audit_test_tab
set col1 = 'apple1'
where col1 = 'apple';
update audit_test_tab
set col2 = 'banana1'
where col2 = 'banana';
select col2 from audit_test_tab;
COL2
----------
banana1
banana2

SQL>

2.6 查看审计记录

我们检查审计线索。

sqlplus sys/oracle@db1:1521/freepdb1 as sysdba

column event_timestamp format a30
column dbusername format a10
column action_name format a20
column object_schema format a10
column object_name format a20
column sql_text format a40

select event_timestamp,
 dbusername,
 action_name,
 object_schema,
 object_name,
 sql_text
from unified_audit_trail
where object_name = 'AUDIT_TEST_TAB'
order BY event_timestamp;

EVENT_TIMESTAMP DBUSERNAME ACTION_NAME OBJECT_SCH OBJECT_NAME SQL_TEXT
------------------------------ ---------- -------------------- ---------- -------------------- ----------------------------------------
06-NOV-24 02.53.55.596205 PM TESTUSER1 UPDATE TESTUSER1 AUDIT_TEST_TAB update audit_test_tab
 set col1 = 'apple1'
 where col1 = 'apple'

06-NOV-24 02.53.56.115961 PM TESTUSER1 UPDATE TESTUSER1 AUDIT_TEST_TAB update audit_test_tab
 set col2 = 'banana1'
 where col2 = 'banana'

06-NOV-24 02.54.00.192296 PM TESTUSER1 SELECT TESTUSER1 AUDIT_TEST_TAB select col2 from audit_test_tab

请注意,仅审核指定列上的那些操作。 ID列的查询以及COL3列的更新没有被审计。


写在最后

数据库在当今信息社会中扮演着重要角色,为各行各业提供数据支持。如果你想深入了解数据库的使用与管理,欢迎关注我们的微信公众号“安呀智数据坊”,我们将定期分享更多相关知识和行业动态。

如果你觉得这篇文章对你有帮助,记得点赞支持一下哦!你的每一个点赞都是我继续创作的动力!

相关推荐

Micheal Nielsen's神经网络学习之二

依然是跟着MichaelNielsen的神经网络学习,基于前一篇的学习,已经大概明白了神经网络的基本结构和BP算法,也能通过神经网络训练数字识别功能,之后我试验了一下使用神经网络训练之前的文本分类,...

CocoaPods + XCTest进行单元测试 c单元测试工具

在使用XCTest进行单元测试时,我们经常会遇到一些CocoaPods中的开源框架的调用,比如“Realm”或“Alamofire”在测试的时候,如果配置不当,会导致“frameworknotfo...

Java基础知识回顾第四篇 java基础讲解

1、&和&&的区别作为逻辑运算符:&(不管左边是什么,右边都参与运算),&&(如果左边为false,右边则不参与运算,短路)另外&可作为位运算符...

项目中的流程及类似业务的设计模式总结

说到业务流程,可能是我做过的项目中涉及业务最多的一个方面了。除了在流程设计之外,在一些考核系统、产业审批、还有很多地方,都用到相似的设计思路,在此一并总结一下。再说到模式,并不是因为流行才用这个词,而...

联想三款显示器首批获得 Eyesafe Certified 2.0 认证

IT之家7月31日消息,据外媒报道,三款全新联想显示器是全球首批满足EyesafeCertified2.0的设备。据报道,联想获得EyesafeCertified2.0认证的显...

maven的生命周期,插件介绍(二) 一个典型的maven构建生命周期

1.maven生命周期一个完整的项目构建过程通常包括清理、编译、测试、打包、集成测试、验证、部署等步骤,Maven从中抽取了一套完善的、易扩展的生命周期。Maven的生命周期是抽象的,其中的具体任务都...

多线程(3)-基于Object的线程等待与唤醒

概述在使用synchronized进行线程同步中介绍了依赖对象锁定线程,本篇文章介绍如何依赖对象协调线程。同synchronized悲观锁一样,线程本身不能等待与唤醒,也是需要对象才能完成等待与唤醒的...

jquery mobile + 百度地图 + phonegap 写的一个"校园助手"的app

1jquerymobile+百度地图+phonegap写的一个"校园助手"的app,使用的是基于Flat-UI的jQueryMobile,请参考:https://github.com/...

Apache 服务启动不了 apache系统服务启动不了

{我是新手,从未遇到此问题,请各位大大勿喷}事由:今天早上上班突然发现公司网站出现问题。经过排查,发现是Apache出现问题。首先检查配置文件没有出问题后,启动服务发现Apache服务能启动,但是没法...

健康债和技术债都不能欠 公众号: 我是攻城师(woshigcs)

在Solr4.4之后,Solr提供了SolrCloud分布式集群的模式,它带来的主要好处是:(1)大数据量下更高的性能(2)更好扩展性(3)更高的可靠性(4)更简单易用什么时候应该使用Sol...

Eye Experience怎么用?HTC告诉你 eyebeam怎么用

IT之家(www.ithome.com):EyeExperience怎么用?HTC告诉你HTC上周除了发布HTCDesireEYE自拍机和HTCRE管状运动相机之外,还发布了一系列新的智能手机...

Android系统应用隐藏和应用禁止卸载

1、应用隐藏与禁用Android设置中的应用管理器提供了一个功能,就是【应用停用】功能,这是针对某些系统应用的。当应用停用之后,应用的图标会被隐藏,但apk还是存在,不会删除,核心接口就是Packag...

计算机软件技术分享--赠人玫瑰,手遗余香

一、Netty介绍Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说,Netty...

Gecco爬虫框架的线程和队列模型 爬虫通用框架

简述爬虫在抓取一个页面后一般有两个任务,一个是解析页面内容,一个是将需要继续抓取的url放入队列继续抓取。因此,当爬取的网页很多的情况下,待抓取url的管理也是爬虫框架需要解决的问题。本文主要说的是g...

一点感悟(一) 初识 初读感知的意思

时间过得很快,在IT业已从业了两年多。人这一辈子到底需要什么,在路边看着人来人往,大部分人脸上都是很匆忙。上海真是一个魔都,它有魅力,有底蕴,但是一个外地人在这里扎根置业,真的是举全家之力,还贷3...