针对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 员 ...
随机推荐
- python与redis交互
爬虫抓来的数据根据实际情况需要存入不同数据库,今天分享一下自己把数据存入redis数据库的经验,有需要的童鞋拿走不谢. 1.环境: Mac osx + python2. 2.需要安装的python包 ...
- git上传到github
一. Git创建 1. git init 命令来初始化一个Git仓库 2. 添加文件到Git仓库,分两步 1) 使用命令 git add <file>,可以反复多次添加,添加多个文件 2) ...
- HBase shell 命令介绍
HBase shell是HBase的一套命令行工具,类似传统数据中的sql概念,可以使用shell命令来查询HBase中数据的详细情况.安装完HBase之后,如果配置了HBase的环境变量,只要在sh ...
- cs231n --- 3 : Convolutional Neural Networks (CNNs / ConvNets)
CNN介绍 与之前的神经网络不同之处在于,CNN明确指定了输入就是图像,这允许我们将某些特征编码到CNN的结构中去,不仅易于实现,还能极大减少网络的参数. 一. 结构概述 与一般的神经网络不同,卷积神 ...
- 栈和队列数据结构的相互实现[LeetCode]
栈是先进后出,队列是先进后出,这里讨论一下两种数据结构之间的相互实现. 一.用两个栈实现队列 我们用一个栈来实现队列的进队操作(栈A),用另一个栈来实现队列的出队操作(栈B). 1.入队列: 把元素放 ...
- 写给小白的JAVA链接MySQL数据库的步骤(JDBC):
作为复习总结的笔记,我罗列了几个jdbc步骤,后边举个简单的例子,其中的try块请读者自行处理. /* * 1.下载驱动包:com.mysql.jdbc.Driver;网上很多下载资源,自己找度娘,此 ...
- C# (类型、对象、线程栈和托管堆)在运行时的相互关系
在介绍运行时的关系之前,先从一些计算机基础只是入手,如下图: 该图展示了已加载CLR的一个windows进程,该进程可能有多个线程,线程创建时会分配到1MB的栈空间.栈空间用于向方法传递实参,方法定义 ...
- linux下配置Tomcat开机启动
我们在linux下安装好tomcat之后:经常是需要配置到开机启动的: 这样的话就不需要我们每次重启linux服务器之后自己在登陆运行startup.sh文件启动tomcat了 本次的演示环境是在ce ...
- 正则表达过滤表单隐藏元素,组装post数据
<form name="form1" action="'.$serverUrl.'" method="post" > <i ...
- 大数据学习系列之八----- Hadoop、Spark、HBase、Hive搭建环境遇到的错误以及解决方法
前言 在搭建大数据Hadoop相关的环境时候,遇到很多了很多错误.我是个喜欢做笔记的人,这些错误基本都记载,并且将解决办法也写上了.因此写成博客,希望能够帮助那些搭建大数据环境的人解决问题. 说明: ...