随笔 - 746  文章 - 0  评论 - 39  阅读 - 79万

Oracle:审计

Oracle提供了审计工具,用于跟踪、记录、统计数据库活动的方方面面!——sqlserver似乎还没有该功能!

Oracle的审计功能三大类

  1. 利用初始化参数控制的:数据库内置审计
  2. 利用dbms_fga提供的:表、视图的精细审计
  3. 利用触发器实现的:强大、复杂、灵活的 应用审计

 

下面介绍数据库内置审计功能

  默认情况下:oracle不启用数据库审计功能。Oracle只记录数据库的基本活动,可以通过windows的事件查看器查看审计记录聊——这时候所提供的信息是一般的windows服务所必须提供的信息。没有oracle的主动审计工作在里面。(这时候的oracle把基本活动记录在想关的日志中:错误、跟踪、后台、用户等)

  • audit_sys_operations={false(默认:不启用特权用户的审计)|true}
  • audit_trail={none(默认:不启用普通用户的审计)|os|db|db_extended|xml|xml_extended}

 

 

设置审计audit:需要audit system、audit any权限。

  • audit {all | sqlstatment....} [by {all users | user....| proxy....}]   [by {session | access}]   [whenever { all | successful | not successful}]
  • audit {all privileges | role.... | system_privileges....}  [by {all users | user....| proxy....}]   [by {session | access}]   [whenever { all | successful | not successful}]
  • audit {all | object_options....} on { default | directory directory_name | [schema.] object}   [by {session | access}]   [whenever { all | successful | not successful}]
  • audit network   [by {session | access}]   [whenever { all | successful | not successful}]
  • 注意:只有对象审计是立即生效的,其他的审计只对将来的会话生效!

 

停止审计noaudit:权限需求同audit ,定义形式相同——除了没有 [by {session | access}] 子定义

注意:noaudit必须和也只能取消之前定义完全相同的audit语句,并不会取消所有或指定的类,其他的audit会继续进行

 

审计推荐

  • by access 可以审计每一次执行,对于dml来说:by session 对同一会话内相同的dml语句只记录一次审计记录是不合适的!
  • by user 可以只审计某个、某些用户的,比较实用

 

查询审计信息:dba_audit_trail字典表。审计纪律记录在sys.aud$fixed表里,可以通过查询dba_audit_trail数据字典表获取信息

  • dba_audit_xxx:审核的记录细节信息
  • dba_stmt_audit_opts:语句审核设置
  • dba_priv_audit_opts:权限审核设置
  • dba_obj_audit_opts:对象审核设置

 

 

posted on   jinzhenshui  阅读(411)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)

点击右上角即可分享
微信分享提示