oracle数据库如何开启审计日志

 更新时间:2024年10月08日 09:53:10   作者:lnwd___  
在Oracle数据库中,审计功能的开启与关闭由参数audit_trail控制,其取值包括DB(默认值,开启审计并记录到数据库)、OS(将审计记录写入操作系统文件)、TRUE(开启审计功能)、FALSE和NONE(均为关闭审计功能),操作过程涉及查看、开启

1 审计功能由参数 audit_trail 进行控制

取值范围及意义如下:

参数取值 说明

  • DB (默认)开启审计功能。
  • OS 将审计记录写入操作系统的一个文件
  • TRUE 开启审计功能。
  • FALSE 关闭审计功能。
  • NONE 关闭审计功能。

2 以 DBA 的身份登陆SQL plus

以下所有命令均在此模式下执行:

sqlplus / as sysdba

2.1 查看 audit_trail 的值

SHOW PARAMETER AUDIT

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string      /data/app/oracle/admin/orcl/ad
                                                 ump
audit_sys_operations                 boolean     TRUE
audit_syslog_level                   string
audit_trail                          string      DB

根据查询结果可知

已经开启数据库审计功能

2.2 执行以下语句关闭数据库审计功能

ALTER SYSTEM SET AUDIT_TRAIL='NONE' SCOPE=SPFILE;

2.3 重启数据库

shutdown immediate;
startup;

2.4 验证审计是否已经被关闭

show parameter audit_trail

NAME TYPE VALUE

audit_trail string FALSE

说明:

  • VALUE值为FALSE
  • 表面审计功能为关闭的状态

2.5 开启审计功能

alter system set audit_sys_operations=TRUE scope=spfile;--审计管理用户(以sysdba/sysoper角色登陆)
alter system set audit_trail=db,extended scope=spfile;

最后重启服务即可开启。

2.6 删除审计日志

当已形成很对日志时,可删除里面的记录,目前是直接删除,未对数据库造成影响。

  • 查询目前的日志信息:select * FROM SYS.AUD$;
  • 删除已有的审计信息:DELETE FROM SYS.AUD$;
  • 或者快速删除表信息:truncate table SYS.AUD$;

一般建议部署完oracle后如不用审计功能,即关闭以节省空间。

3 开启特定用户特定表的审计

select * from dba_audit_object --查看日志是否生成
AUDIT ALL ON "c##zhangsan".TEST2 by ACCESS;设置特定用户特定表审计
AUDIT ALL BY "c##zhangsan" BY ACCESS;
AUDIT ALL ON "c##zhangsan".TEST2;
select * from DBA_OBJ_AUDIT_OPTS  --查询那些用户开户审计功能
AUDIT UPDATE ON SCOTT.EMP;
AUDIT DELETE ON SCOTT.EMP by ACCESS;
AUDIT UPDATE ON ROOT.TEST2;

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • PL/SQL 类型格式转换

    PL/SQL 类型格式转换

    PL/SQL 类型格式转换...
    2007-03-03
  • Oracle 中 row_number()、rank()、dense_rank() 函数的用法详解

    Oracle 中 row_number()、rank()、dense_rank() 函数的

    rank() 与 row_number() 的区别在于,rank() 会按照排序值相同的为一个序号(以下称为:块),第二个不同排序值将显示所有行的递增值,而不是当前序号加1,下面通过示例介绍下Oracle 中 row_number()、rank()、dense_rank() 函数的用法,一起看看吧
    2024-03-03
  • Oracle分组函数之ROLLUP的基本用法

    Oracle分组函数之ROLLUP的基本用法

    这篇文章主要给大家介绍了关于Oracle分组函数之ROLLUP的基本用法,文中通过示例代码介绍的非常详细,对大家学习或者使用Oracle数据库具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • Oracle11g R2 安装教程完整版

    Oracle11g R2 安装教程完整版

    Oracle11g从去年年底发布至今已经有一段时间了,我可以说也算首批体验Oracle11g的客户了吧,本文给大家简述Oracle11g R2 安装教程完整版,感兴趣的朋友跟随小编一起看看吧
    2021-06-06
  • Oracle学习笔记(五)

    Oracle学习笔记(五)

    最近需要用的oracle,所以大家好好的学习下基础并整理下资料,希望能帮助到需要的朋友。
    2011-12-12
  • Oracle 启动例程 STARTUP参数说明

    Oracle 启动例程 STARTUP参数说明

    Oracle启动例程:STARTUP参数说明(2008-07-28 20:51:20)标签:startup shutdown 事例 it 分类:Oracle数据管理
    2009-07-07
  • ORACLE中锁住/解锁统计信息的操作代码

    ORACLE中锁住/解锁统计信息的操作代码

    从Oracle 10g 开始,Oracle提供了锁定/解锁表统计信息功能,它的目的是阻止数据库自动收集统计信息,防止可能会产生/出现的糟糕的计划,这篇文章主要介绍了ORACLE中锁住/解锁统计信息的操作代码,需要的朋友可以参考下
    2023-09-09
  • ORA-00349|激活 ADG 备库时遇到的问题及处理方法

    ORA-00349|激活 ADG 备库时遇到的问题及处理方法

    这篇文章主要介绍了ORA-00349|激活 ADG 备库时遇到的问题及处理方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • oracle中左填充(lpad)和右填充(rpad)的介绍与用法

    oracle中左填充(lpad)和右填充(rpad)的介绍与用法

    这篇文章主要跟大家介绍了关于oracle中左填充(lpad)和右填充(rpad)的相关资料,通过填充我们可以固定字段的长度,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-08-08
  • Orcale 数据库客户端PL/SQL 中文乱码的问题解决方法

    Orcale 数据库客户端PL/SQL 中文乱码的问题解决方法

    这篇文章主要介绍了Orcale 数据库客户端PL/SQL 中文乱码的问题解决方法,需要的朋友可以参考下
    2014-05-05

最新评论