Oracle:审计
Oracle提供了审计工具,用于跟踪、记录、统计数据库活动的方方面面!——sqlserver似乎还没有该功能!
Oracle的审计功能三大类
- 利用初始化参数控制的:数据库内置审计
- 利用dbms_fga提供的:表、视图的精细审计
- 利用触发器实现的:强大、复杂、灵活的 应用审计
下面介绍数据库内置审计功能
默认情况下: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:对象审核设置
分类:
Oracle
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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)