针对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 员 ...
随机推荐
- 利用AndroidStudio开发java工程
1.新建一个project,或者如果你已经有project的话,那就直接新建一个module.注意选择Java library,然后下一步. 2.输入module的一些信息.点击finish.(在创建 ...
- js登录滑动验证,不滑动无法登陆
js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html; ...
- iOS 计时器三种定时器的用法NSTimer、CADisplayLink、GCD
原文:http://www.cocoachina.com/ios/20160919/17595.html DEMO链接
- Python学习日记:day6----小知识点总结
小知识点总结 一.Python2与Python3 的区别 1.Python2中可以加括号输出,也可不加输出 Python3中必须加 2.python2 中有xrange(生成器)也有range ...
- [array] leetcode - 33. Search in Rotated Sorted Array - Medium
leetcode - 33. Search in Rotated Sorted Array - Medium descrition Suppose an array sorted in ascendi ...
- 排查程序死循环,死锁的方法 ——pstack
pstack命令可显示每个进程的栈跟踪,pstack $pid即可,pstack命令须由$pid进程的属主或者root运行. 这次出现cpu占比100%的情况,但看memory占比,并无异常,怀疑是某 ...
- intelij Android 搭建 java 项目
1.打开ide创建页面,点击创建项目 2.选择Android,发现下面有一段红字,解释很清楚,由于第一使用为设置Android的开发环境sdk,去设置一下就好,点击取消回到上一界面 3 配置 4.当然 ...
- 高性能管线式HTTP请求(实践·原理·实现)
该篇实际是介绍pipe管线的原理,下面主要通过其高性能的测试实践,解析背后数据流量及原理.最后附带一个简单的实现 实践 先直接看对比测试方法 对于单一客户端对服务器进行http请求,一般我 ...
- Xamarin android spinner的使用方法
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- c#扩展方法的使用
"扩展方法使您能够向现有类型"添加"方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型." 1.为什么会有扩展方法 你一定很疑问什么是扩展方法!什么 ...