Oracle 审计管理
下面是实际生产库的一个加固项,是针对于数据库审计。
- 检查是否记录操作日志;检查是否根据业务要求制定数据库审计策略(需要重启数据库)
注意事项及影响:
- 开启审计功能,对于os 级别审计需要部署清理脚本,db 级别审计也需要部署清理脚本
- 对于开启db 级别的审计时,需要迁移审计表到非系统表空间,迁移前truncate sys.aud$ 表
- 该项加固需要重启数据库
序号 | 操作内容 | 操作步骤 | 责任人 | 时间 |
1 | 登陆数据库 | Sqlplus ‘/as sysdba’ |
|
|
2 | 检查数据库状态 | Select open_mode from v$database; |
|
|
3 | 修改审计级别 | 审计级别可以选择os 或者db ,根据需要自己决定 alter system set audit_trail='xxxx' scope=spfile; ---xxxx为DB或OS,建议DB |
|
|
4 | 关闭数据库 | Alter system switch logfile; Alter system checkpoint; Shutdown immediate; |
|
|
5 | 重启数据库 | Startup ; |
|
|
6 | 查看参数 | Show parameter audit ; 查看参数是否已经修改 |
|
|
7 | 清空审计表 | 迁移审计前清空审计表,否则迁移速度可能很慢 Truncate table sys.aud$; |
|
|
8 | 迁移审计日志11g | 将aud$所在的system 表空间迁移到非system 表空间如TBS_DTLDATA:
BEGIN DBMS_AUDIT_MGMT.set_audit_trail_location(audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD, --this moves table AUD$ audit_trail_location_value => 'TBS_DTLDATA'); --AUD替换为系统中TBS_DTLDATA表空间 END; /
BEGIN DBMS_AUDIT_MGMT.set_audit_trail_location(audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_FGA_STD, --this moves table FGA_LOG$ audit_trail_location_value => 'TBS_DTLDATA'); --FGA替换为系统中的TBS_DTLDATA表空间 END; / |
|
|
9 | 迁移审计日志9i,10g | 将aud$所在的system 表空间迁移到非系统表空间如tms: alter table AUDIT$ move tablespace TMS; alter table AUDIT_ACTIONS move tablespace TMS; alter table AUD$ move tablespace TMS; alter table AUD$ move lob(SQLBIND) store as SYS_aud$_sqlbind_0000000384C00040$$ (tablespace TMS); alter table AUD$ move lob(SQLTEXT) store as SYS_aud$_sqltext_0000000384C00041$$ (tablespace TMS); alter index I_AUDIT rebuild online tablespace TMS; alter index I_AUDIT_ACTIONS rebuild online tablespace TMS;
select t.tablespace_name,t.segment_name,t.column_name from dba_lobs t where t.table_name='AUD$';
|
|
|
10 | 对于db级别的审计部署清理脚本 | 清理脚本:
CREATE PROCEDURE P_CLEAR_AUDIT AS
LVC_SQL VARCHAR2(200); BEGIN
LVC_SQL := 'TRUNCATE TABLE SYS.AUD$'; EXECUTE IMMEDIATE LVC_SQL;
END; /
--记得修改执行时间,使用job来定时清理aud$表 DECLARE JOBS INT; BEGIN
SYS.DBMS_JOB.SUBMIT(JOB => JOBS, WHAT => 'P_CLEAR_AUDIT;', NEXT_DATE => TO_DATE('2018-10-21 23:59:00', 'YYYY-MM-DD HH24:MI:SS'), INTERVAL => 'SYSDATE+1'); COMMIT; END; /
SYS.DBMS_JOB.SUBMIT是什么: 用于安排和管理作业队列,通过使用作业,可以使ORACLE数据库定期执行特定的任务。 一、dbms_job涉及到的知识点
--查询job 部署情况 COL WHAT FOR A30 COL INTERVAL FOR A30 SET LINES 1000 SELECT JOB,WHAT ,INTERVAL ,T.NEXT_DATE FROM DBA_JOBS T WHERE WHAT LIKE '%AUD%';
|
|
|
11 | 应用测试 | 业务测试是否正常 |
|
|
相关文章
- 在阿里云上遇见更好的Oracle(三)
- 【C/C++学院】(24)Oracle数据库编程--管理oracle
- Oracle数据库基本概念理解(3)
- Oracle 10g 升级至10.2.0.4
- Oracle综合数据库管理命令集
- Oracle中文乱码解决办法总结
- oc4j以及gsd服务都处于offline状态,这是Oracle 11g RAC默认情形
- 从远程Oracle服务器上同步复制数据到本地备份库
- oracle 日志组管理
- oracle文件管理
- Oracle 启动ASMM管理
- Oracle 11G启动自动内存管理AMM
- Oracle undo表空间管理
- Oracle自定义数据类型 1
- Oracle成长点点滴滴(3)— 权限管理
- oracle表连接------>排序合并连接(Merge Sort Join)
- 搭建一个Oracle到Oracle的Goldengate双向复制环境
- 安装Oracle时可能碰到的常见问题-1
- oracle提权执行命令工具oracleShell v0.1
- Oracle相关文件
- Oracle 管理多租户环境之CDB管理
- Oracle控制文件的管理
- How to Configure OEM Express Oracle 12c
- 【数据库管理】①② Oracle逻辑存储架构(上)
- 【大数据实时数据同步】超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(上)