Oracle审计表清理脚本

1.禁用审计

1.1.查看数据库有哪些审计

select * from dba_audit_policies;

1.2.生成禁用审计脚本

select 'exec sys.dbms_fga.enable_policy(object_schema=>'''||object_schema||''',object_name=>'''||object_name||''',policy_name=>'''||policy_name||''',enable=>false);' from dba_audit_policies;

1.3.执行生成的脚本

2.导出

vi exp_fga_log.par

# 不带时间条件
file=fga_log_01.dmp,fga_log_02.dmp,fga_log_03.dmp,fga_log_04.dmp,fga_log_05.dmp
tables=sys.fga_log$ 
filesize=10g 
buffer=99999999
# 带时间条件
query=sys.fga_log$:"where FROM_TZ(ntimestamp#, '00:00') AT LOCAL BETWEEN TO_TIMESTAMP(TO_CHAR(SYSDATE - 123,'YYYYMMDD') || '073000000','YYYYMMDDHH24MISSFF') AND TO_TIMESTAMP(TO_CHAR(SYSDATE,'YYYYMMDD') || '073000000','YYYYMMDDHH24MISSFF')"

exp " '/ as sysdba' " parfile=exp_fga_log.par

# 如果导出报错EXP-00091:Exporting questionable statistics
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

3.清空表

-- 需要用sys用户
truncate table sys.fga_log$ drop storage;

4.更换表空间

exec sys.dbms_audit_mgmt.set_audit_trail_location(audit_trail_type=>dbms_audit_mgmt.audit_trail_fga_std,audit_trail_location_value=>'new tablespace');

5.重新开启审计

select 'exec sys.dbms_fga.enable_policy(object_schema=>'''||object_schema||''',object_name=>'''||object_name||''',policy_name=>'''||policy_name||''',enable=>true);' from dba_audit_policies;
posted @   monkey6  阅读(319)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示