Oracle标准数据库审计

一、开启审计
1、查看是否开启审计功能

select * from sys.aud$;
select * from dba_audit_trail;

SQL> show parameter audit
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string      /u01/app/oracle/admin/ORCL/adump
audit_sys_operations                 boolean     FALSE
audit_syslog_level                   string
audit_trail                          string      NONE

显示audit_trail=none,所以没有开启审计。

2、启动审计
SQL> alter system set audit_sys_operations=TRUE scope=spfile;  --审计管理用户(以sysdba/sysoper角色登陆)
SQL> alter system set audit_trail=db,extended scope=spfile;
SQL> startup force; --生产环境不允许
SQL> show parameter audit
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string      /u01/app/oracle/admin/ORCL/adump
audit_sys_operations                 boolean     TRUE
audit_syslog_level                   string
audit_trail                          string      DB, EXTENDED

审计线索audit_trail可以设置为
• NONE
• OS
• DB
• DB,EXTENDED
• XML
• XML,EXTENDED

3、清空审计信息
truncate table sys.aud$;

二、语句审计

1、授予语句审计
audit table;--审计数据库中所有的create table,drop table,truncate table语句
alter session by mid_sc;--会审计mid_sc用户所有的数据库连接

2、语句审计从下一个会话开始生效,需要退出当前会话,重新登录

3、查询审计信息
select *
from dba_audit_trail a
where owner='SCOTT' and obj_name='T3'
order by a.timestamp desc;

4、取消语句审计
audit table;

三、对象权限审计

1、授予对象权限审计
语法:audit object_privilege_clause on user_name.column [by session|access] [whenever [not] successful]
其中object_privilege_clause是对象权限

例子audit all on scott.t3;--此处的ALL包括增删改查
--audit update,delete on scott.t3

2、查看有哪些对象审计权限和对哪些用户进行了对象权限审计
select * from DBA_OBJ_AUDIT_OPTS;

3、对象权限审计即时生效

4、查询审计信息
select *
from dba_audit_trail a
where owner='SCOTT' and obj_name='T3'
order by a.timestamp desc;

5、取消对象权限审计
noaudit delete,insert on liut.TEMP_LIUTAO;--取消关于此表delete,insert的审计
noaudit all on liut.TEMP_LIUTAO;--取消关于此表所有的审计

四、系统权限审计

1、授予系统权限审计
语法:audit system_privilege_name [by user_name]| [by session|access] [whenever [not] successful]

其中system_privilege_name是系统权限

例子audit select table,delete table,update table by 用户名 by access;
--audit all by 用户名 by access;--此处的ALL并不包括增删改查
--select table包括select any table的审核范围。

2、查看基于系统权限的审计策略和对哪些用户进行了权限审计
select * from dba_priv_audit_opts;--DBA_STMT_AUDIT_OPTS?

3、系统权限审计从下一个会话开始生效,需要退出当前会话,重新登录

4、查询审计信息
select *
from dba_audit_trail a
where owner='SCOTT' and obj_name='T3'
order by a.timestamp desc;

5、取消系统权限审计
noaudit alter table by scott;

如果在命令后面添加by user_name则只对user_name的操作进行审计,如果省去by用户,则对系统中所有的用户进行审计(不包含sys用户).

例:
AUDIT DELETE ANY TABLE;    --审计删除表的操作
AUDIT DELETE ANY TABLE WHENEVER NOT SUCCESSFUL;    --只审计删除失败的情况
AUDIT DELETE ANY TABLE WHENEVER SUCCESSFUL;        --只审计删除成功的情况

五、注意事项
1.对于系统权限审计和大部分语句,by session无效,无论指定by session/by access还是不指定,审计都自动为by access。
2.系统权限审计,当用户使用了该权限则被审计,如执行grant select any table to a,当执行了audit select any table语句后,当用户a 访问了用户b的表时(如select * from b.t)会用到select any table权限,故会被审计。注意用户是自己表的所有者,所以用户访问自己的表不会被审计,如需要也审核,则audit select table,此时所有select都会被审核。
3.审计的语句级可以指定ALL,但是ALL只包括大部分语句,它不包括下面这些语句。
ALTER SEQUENCE, ALTER TABLE, COMMENT TABLE, DELETE TABLE, EXECUTE PROCEDURE, GRANT DIRECTORY, GRANT PROCEDURE, GRANT SEQUENCE, GRANT TABLE, GRANT TYPE, INSERT TABLE, LOCK TABLE, SELECT SEQUENCE, SELECT TABLE, UPDATE TABLE
4.对于语句和权限审计,生效从执行语句后下一个登陆用户开始,当前的所有session不受影响。而对象的审计,则从审计语句开始后对当前所有的用户生效。
5.可以使用NOAUDIT ALL、NOAUDIT ALL PRIVILEGE取消所有的语句、权限的审计,但是如果在审计的时候指定了用户,则NOAUDIT ALL或NOAUDIT ALL PRIVILEGE的时候,不会取消这些明确用户的审计,必须在NOAUDIT的时候也明确的指出相应的用户。

六、相关表和视图:
SYS.AUD$ 是唯一保留审计结果的表。其它的都是视图。
STMT_AUDIT_OPTION_MAP 包含有关审计选项类型代码的信息由SQL.BSQ 脚本在CREATEDATABASE 的时候创建
AUDIT_ACTIONS 包含对审计跟踪动作类型代码的说明
ALL_DEF_AUDIT_OPTS 包含默认对象审计选项。当创建对象时将应用这些选项
DBA_STMT_AUDIT_OPTS 描述由用户设置的跨系统的当前系统审计选项
DBA_PRIV_AUDIT_OPTS 描述由用户正在审计的跨系统的当前系统权限
DBA_OBJ_AUDIT_OPTS 描述在所有对象上的审计选项
USER_OBJ_AUDIT_OPTS USER 视图描述当前用户拥有的所有对象上的审计选项
以下是审计记录
DBA_AUDIT_TRAIL 列出所有审计跟踪条目
USER_AUDIT_TRAIL USER视图显示与当前用户有关的审计跟踪条目
DBA_AUDIT_OBJECT 包含系统中所有对象的审计跟踪记录
USER_AUDIT_ OBJECT USER 视图列出一些审计跟踪记录而这些记录涉及当前用户可以访问的对象的语句
DBA_AUDIT_SESSION 列出涉及CONNECT 和DISCONNECT 的所有审计跟踪记录
USER_AUDIT_ SESSION USER视图列出涉及当前用户的CONNECT 和DISCONNECT 的所有审计跟踪记录
DBA_AUDIT_STATEMENT 列出涉及数据库全部的GRANT REVOKE AUDIT NOAUDIT 和ALTER SYSTEM 语句的审计跟踪记录
USER_ AUDIT_ STATEMENT 对于USER 视图来说这些语句应是用户发布的
DBA_AUDIT_EXISTS 列出BY AUDIT NOT EXISTS 产生的审计跟踪条目
下面的视图用于细粒度审计
DBA_AUDIT_POLICIES 显示系统上的所有审计策略
DBA_FGA_AUDIT_TRAIL 列出基于值的审计的审计跟踪记录

参考文献:
http://wkf41068.iteye.com/blog/1930557
http://blog.chinaunix.net/uid-20274021-id-1969578.html
http://blog.itpub.net/15880878/viewspace-720044/ (FGA)

Oracle Audit相关推荐

  1. oracle audit文件,[20191128]oracle Audit文件管理2.txt

    [20191128]oracle Audit文件管理2.txt --//以前的测试,http://blog.itpub.net/267265/viewspace-2646161/ => [201 ...

  2. [20190530]oracle Audit文件管理.txt

    [20190530]oracle Audit文件管理.txt --//昨天听课,讲一些oracle相关安全的问题,对方提到audit file的管理,应该引入OS audit,这样目的是仅仅root查 ...

  3. Oracle Audit Vault部署

    1.Oracle Audit Vault简介 通过自动将审计数据合并到一个安全的数据仓库,使得能够更加有效的进行监控和报告.Oracle Audit Vault是一个强大的解决方案,它提供了安全的数据 ...

  4. 审计日志删除 oracle,oracle audit,怎么审计ORACLE日志

    Oracle 的审计实在是鸡肋,审计日志增加猛速,而且加大系统负荷,降低系统性能. 依我们在生产系统的作法就是禁用审计,禁用后清除审计日志. 处理方法: 1.查看审计功能是否开启sqlplus &qu ...

  5. ORACLE AUDIT 审计

    转自 http://blog.csdn.net/dnnyyq/article/details/4525980 1.什么是审计 审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计 ...

  6. 转- Oracle Audit 功能的使用和说明

    http://blog.itpub.net/9399028/viewspace-712457/审计(Audit) 用于监视用户所执行的数据库操作,审计记录可存在数据字典表(称为审计记录:存储在syst ...

  7. oracle audit for 11g

    2019独角兽企业重金招聘Python工程师标准>>> ----SYS用户下执行 ----0,检查当前数据库的失效对象. select OWNER,OBJECT_NAME,OBJEC ...

  8. oracle audit文件,oracle 参数文件audit_trail的认识

    近日,逐步开始课题的研究.具体内容可以参考<我的课题>栏目下的内容,那里涉及了课题的主要研究内容. 目前仍在探索阶段,尤其是对Oracle的认识,也在随着不断地学习在逐步加深.课题的题目是 ...

  9. Oracle Database 12c Security - 12. Audit for Accountability

    Oracle Unified Audit Trail (OUA)是12c新增功能. THE SECURITY CYCLE 审计使安全更完整,审计是事后行为,不能预防. 访问控制并不能保证非授权访问,人 ...

  10. Oracle LiveLabs实验:DB Security - Audit Vault and DB Firewall

    概述 此实验关于Oracle AVDF(Audit Vault and DB Firewall). 此实验申请地址在这里,时间为150分钟. 实验帮助在这里. 本实验使用的AVDF版本为Oracle ...

最新文章

  1. hibernate开发错误及解决办法
  2. safe_mode 开启后linux下影响
  3. 2021-09-26
  4. 你为何如此优秀?| 神策数据 2018 年获奖集锦
  5. Android自己搭建一个实用的SharedPreferences管理类
  6. 查看oracle连接客户端
  7. l4 l7 代理_什么是四层(L4 proxy)和七层负载均衡(L7 proxy)?区别是什么? 翻译自Nginx官网...
  8. 格力接受美国5.83亿巨额罚款!官方紧急回应...
  9. 黑客帝国中的代码雨写法
  10. 域名检测工具图文教程
  11. 【Vegas原创】IPAD忘记密码重置恢复出厂设置
  12. 怎么把音乐WAV格式转换为MP3格式
  13. 扒皮 || 优衣库X KAWS凭什么会被疯抢??!!!
  14. python取整数部分的几种方法
  15. php语言开始和结束分别为,PHP语言参考
  16. 先说说什么是主数据和参考数据?
  17. 上汽招聘项目管理PMO(地点:上海,薪酬面议)
  18. C++ 实现磁盘初始化
  19. Trie 字典树【Leo_Jose】
  20. 反编译小程序.wxapkg文件

热门文章

  1. 腾讯QQ关闭所有的热键,防止冲突
  2. linux根文件系统与内核合二为一
  3. 二级c语言笔试试题及答案,1996年9月全国计算机等级考试二级C语言笔试试题及答案...
  4. b 树 mysql联合索引_Mysql之B+树索引实战
  5. Ubuntu16.04LTS安装到移动硬盘,实现随插随用
  6. Android 设备管理器 理解和使用
  7. vue单页面应用项目优化总结
  8. RemoveWGA升级了
  9. matlab中关于变量名的规定,在MATLAB中,以下变量名命名正确的是()A:052DB:H123C:_12D:1_D...
  10. Medusa 破解centos密码