前景
为了数据安全,生产环境开数据库审计的话会有很大的消耗,一般不建议开启。于是根据dba_hist_active_sess_history写了个shell 脚本,每天产生一个简单的审计报告。
审计脚本:audit_db.sh
#!/bin/sh
export ORACLE_SID=two
export ORACLE_UNQNAME=two
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/11.2.0.3/product
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export con_user='sqlplus -s / as dba'
export au_dir='/u01/report/audit_db'
audit_date=`date +%Y-%m-%d -d "1 day ago"`
if [ ! -d ${au_dir}/${audit_date} ];then
mkdir -p ${au_dir}/${audit_date}
fi
result=`$con_user <<EOF
set colsep',';
set echo off;
set feedback off;
set heading off;
set pagesize 0;
set linesize 1000;
set numwidth 12;
set termout off;
set timing off;
set trimout on;
set trimspool on;
set trims on;
col username format a15
col machine format a30
col program format a50
col sql_opname format a20
spool ${au_dir}/${audit_date}/${audit_date}.txt
select to_char(h.sample_time, 'yyyy-mm-dd hh24:mi:ss') exec_time,
u.username,
h.machine,
h.program,
h.sql_opname
from sys.dba_hist_active_sess_history h
left join sys.all_users u
on u.user_id = h.user_id
where h.module is not null
and h.sql_opname is not null
and to_char(h.sample_time, 'yyyy-mm-dd') = '$audit_date';
spool off
EOF`
result_report=`$con_user <<EOF
set colsep',';
set echo off;
set feedback off;
set heading off;
set pagesize 0;
set linesize 800;
set numwidth 12;
set termout off;
set timing off;
set trimout on;
set trimspool on;
set trims on;
col username format a15
col machine format a30
col program format a50
col sql_opname format a20
spool ${au_dir}/${audit_date}/${audit_date}.report
select u.username, h.machine, h.program, h.sql_opname, count(*)
from sys.dba_hist_active_sess_history h
left join sys.all_users u
on u.user_id = h.user_id
where h.module is not null
and h.sql_opname is not null
and to_char(h.sample_time, 'yyyy-mm-dd') = '$audit_date'
group by username, machine, program, h.sql_opname
order by 5 desc;
spool off
EOF`
复制
输出日志:
[oracle@localhost 2022-08-02]$ cat 2022-08-02.report 业务用户 主机名 连接方式 操作类型 操作次数 two ,app.tomcat.com ,JDBC Thin Client ,SELECT, 8610 two ,app1.tomcat.com ,JDBC Thin Client ,INSERT, 8610
复制
文章推荐
PostgreSQL | URL |
---|---|
《课程笔记:PostgreSQL深入浅出》之 初识PostgreSQL(一) | https://www.modb.pro/db/475817 |
《课程笔记:PostgreSQL深入浅出》之 PostgreSQL源码安装(二) | https://www.modb.pro/db/475933 |
《课程笔记:PostgreSQL深入浅出》之初始化PostgreSQL(三) | https://www.modb.pro/db/479524 |
《课程笔记:PostgreSQL深入浅出》之PSQL管理工具-常用(四) | https://www.modb.pro/db/479560 |
《课程笔记:PostgreSQL深入浅出》之PSQL管理工具-高级命令(四) | https://www.modb.pro/db/479559 |
《课程笔记:PostgreSQL深入浅出》之内存与进程(五) | https://www.modb.pro/db/489936 |
《课程笔记:PostgreSQL深入浅出》之外存&永久存储(六) | https://www.modb.pro/db/502267 |
Oracle: | URL |
《Oracle 自动收集统计信息机制》 | https://www.modb.pro/db/403670 |
《Oracle_索引重建—优化索引碎片》 | https://www.modb.pro/db/399543 |
《DBA_TAB_MODIFICATIONS表的刷新策略测试》 | https://www.modb.pro/db/414692 |
《FY_Recover_Data.dbf》 | https://www.modb.pro/doc/74682 |
《Oracle RAC 集群迁移文件操作.pdf》 | https://www.modb.pro/doc/72985 |
《Oracle Date 字段索引使用测试.dbf》 | https://www.modb.pro/doc/72521 |
《Oracle 诊断案例 :因应用死循环导致的CPU过高》 | https://www.modb.pro/db/483047 |
《Oracle 慢SQL监控脚本》 | https://www.modb.pro/db/479620 |
《Oracle 慢SQL监控测试及监控脚本.pdf》 | https://www.modb.pro/doc/76068 |
《Oracle 脚本实现简单的审计功能》 | https://www.modb.pro/db/450052 |
《记录一起索引rebuild与收集统计信息的事故》 | https://www.modb.pro/db/408934 |
Greenplum: | URL |
《PL/Java.pdf》 | https://www.modb.pro/doc/70867 |
《GP的资源队列.pdf》 | https://www.modb.pro/doc/67644 |
《Greenplum psql客户端免交互执行SQL.pdf》 | https://www.modb.pro/doc/69806 |
最后修改时间:2022-09-27 21:32:53
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
564次阅读
2025-04-15 17:24:06
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
494次阅读
2025-04-18 14:18:38
Oracle SQL 执行计划分析与优化指南
Digital Observer
465次阅读
2025-04-01 11:08:44
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
456次阅读
2025-04-08 09:12:48
墨天轮个人数说知识点合集
JiekeXu
456次阅读
2025-04-01 15:56:03
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
443次阅读
2025-04-22 00:20:37
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
431次阅读
2025-04-20 10:07:02
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
418次阅读
2025-04-22 00:13:51
Oracle 19c RAC更换IP实战,运维必看!
szrsu
404次阅读
2025-04-08 23:57:08
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
375次阅读
2025-04-17 17:02:24