针对Oracle的审计方案
主题:针对Oracle的审计方案
数据库环境:Oracle 11g
数据库审计需求:
1.需要对连接数据库的行为进行审计
需要对连接数据库的行为进行审计,其中包含例如审计那些错误密码登录等失败的登录行为。
主要关注查询的表就是`aud$`。
比如查询最近一天使用错误密码登录的行为;
--aud$
select sessionid, userid, userhost, comment$text, spare1, ntimestamp#
from aud$
where returncode = 1017
and ntimestamp# > sysdate - 1;
--dba_audit_trail
select *
from dba_audit_trail
where returncode = 1017
and timestamp > sysdate - 1;
更多关于aud$的介绍可参考之前我总结过的文章:
2.需要对核心表的DML操作进行审计
需要对核心表的DML操作进行审计,首先强调下这是不推荐进行审计的,原因是这类审计极少客户会用,它不但会使得核心表的操作性能本身受到一定影响,还有可能触发相关bug。
假如jingyu用户下的T1表非常重要,需要对DML操作进行审计:
SYS@jyzhao1 >AUDIT DELETE,UPDATE,INSERT ON JINGYU.T1;
Audit succeeded.
查询审计结果(列较多,建议图形化工具查看):
SQL> select * from dba_audit_trail order by timestamp;
可以从结果看到所有DML操作都会对应一条action_name为“SESSION REC”的值。
3.需要迁移审计数据到指定表空间
创建新的表空间,比如TBS_AUDIT,然后迁移审计数据从默认的SYSTEM到TBS_AUDIT表空间;
核心步骤如下:
--查看当前AUD$对象所在的表空间
SELECT OWNER, TABLE_NAME, TABLESPACE_NAME
FROM DBA_TABLES
WHERE TABLE_NAME = 'AUD$'
AND OWNER = 'SYS';
--更改AUD$表的表空间为其他表空间
BEGIN
DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
AUDIT_TRAIL_LOCATION_VALUE => '&AUD_TBS_NAME');
END;
/
更多细节可参考之前我总结过的一则案例:
4.需要清理历史审计数据的方案
需要清理历史审计数据的方案:
--截断占用空间最大的AUD$表(需要和DBA确认后操作)
truncate table AUD$;
截断之前可以考虑备份一下审计数据:
Oracle导出sys用户下的系统表aud$:
exp system/oracle file=aud.dmp log=aud.log tables=sys.aud$
实际这个exp导出在测试环境遇到问题,不过最终解决了,具体细节可以参考:
针对Oracle的审计方案的更多相关文章
- oracle 11g审计关闭,及删除日志
转自https://blog.csdn.net/louwzh/article/details/51274955 环境:Linux redhat6.3 下安装的oracle11g oracle 11g推 ...
- Oracle 11g 审计跟踪管理
在Oracle11g之前,oracle数据库自带的审计功能是关闭的,考虑到性能和审计管理的复杂性,用户一般不打开审计功能.如果有审计要求,DBA会采用trigger来实现对DDL审计的方法来折中.例如 ...
- oracle修改审计功能
oracle修改审计功能 如果没有关闭审计功能,审计日志文件默认保存在位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/ 关闭审计:alter system set au ...
- 基于beego orm 针对oracle定制
目前golang的ORM对oracle支持都没有mysql那样完整,一个orm要同时兼容mysql和oracle由于在sql语法上区别,会使整orm变的非常臃肿. 本项目是在beego orm上修改, ...
- Oracle数据库同步方案
Oracle数据库同步方案 1. 利用数据泵导出每表前2000行数据 expdp tvpay2/tvpay directory=dmp dumpfile=20170508.dmp include=ta ...
- ORACLE定时备份方案
ORACLE定时备份方案 采用ORACLE的EXP工具,实现ORACLE的备份:采用LINUX的服务crond实现定时功能. 1 编辑SH,实现备份功能 #vi oracle_backup.sh,输入 ...
- Oracle备份审计表SYS.AUD$和SYS.FGA_LOG$
ORACLE的审计表不可以使用expdp和impdp导出和导入,如果使用,会报如下错误: 需要使用exp和imp进行导出和导出 导出语句: exp " '/ as sysdba' " ...
- 针对Oracle数据库中SCOTT方案的多表查询一个例子
查询出每个员工的姓名.职位.月薪.所属部门名.月薪等级及其领导的姓名.职位.所属部门名.月薪等级.select e.ename 员工姓名,e.job 员工职位,e.sal 员工月薪,d.dname 员 ...
- 针对Oracle数据库中SCOTT方案的多表查询的一个例子
查询出每个员工的姓名.职位.月薪.所属部门名.月薪等级及其领导的姓名.职位.所属部门名.月薪等级.select e.ename 员工姓名,e.job 员工职位,e.sal 员工月薪,d.dname 员 ...
随机推荐
- Intellij 如何在新窗口中打开项目
好多程序员都使用intelliJ idea开发项目,由于不小心设置了不在提示打开项目项目方式,所以只能打开一个窗口,而且只能同时打开一个项目,特别郁闷,分享下设置后的效果 工具/原料 Intell ...
- springboot学习笔记-4 整合Druid数据源和使用@Cache简化redis配置
一.整合Druid数据源 Druid是一个关系型数据库连接池,是阿里巴巴的一个开源项目,Druid在监控,可扩展性,稳定性和性能方面具有比较明显的优势.通过Druid提供的监控功能,可以实时观察数据库 ...
- loadrunner设置分压机 压力测试
压力机设置分压机使用场景: 当本地主机内存较小,运行速度较慢,压力较大等多种需求场景下,可以使用分压机. 一.将另一台机器设置为压力机 1,开始菜单找到HP LoadRunner-->Advan ...
- Git远程库版本回滚
在git的一般使用中,如果发现错误的将不想staging的文件add进入index之后,想回退取消,这就叫做git代码库回滚: 指的是将代码库某分支退回到以前的某个commit id.可以使用命令:g ...
- 平方根的C语言实现(二) —— 手算平方根的原理
版权申明:本文为博主窗户(Colin Cai)原创,欢迎转帖.如要转贴,必须注明原文网址 http://www.cnblogs.com/Colin-Cai/p/7220506.html 作者:窗户 Q ...
- js-使用JavaScript、jQuery两种方式实现全选/全不选
html代码 <input type='checkbox' value="10" name="frust"/>苹果10元 <br/> & ...
- KVM(二):KVM应用
++++++++++++++++++++++++++++++创建和拍摄快照++++++++++++++++++++++++++++++++++ KVM快照方法常用的是qemu-img snapshot ...
- lesson - 8 课程笔记 tar / gzip /bzip2 / xz /
作用:为linux的文件和目录创建档案,也可以在档案中改变文件,或者向档案中加入新的文件即用来压缩和解压文件.tar本身不具有压缩功能.他是调用压缩功能实现的 语法:tar[必要参数][选择参数][ ...
- HTTPS从认识到线上实战全记录
前言 关于HTTPS,基本上你想知道的都在这里了.本文原标题<HTTPS原理与实践>,下图是本文配套PPT的目录截图: [TOC] 原理篇 认识HTTPS 先说一下,本文可能有些地方由于描 ...
- flask入门篇
flask,Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 . Flask简单易学,属于轻量级的,学起来 ...