当前位置:  数据库>oracle

使用Oracle的审计功能监控数据库中的可疑操作

    来源: 互联网  发布时间:2017-04-15

    本文导语: 看一下Oracle的审计功能(包括FGA细粒度审计)能给我们带来些什么的强悍效果。我将通过这个小文儿向您展示一下Oracle很牛的审计功能。Follow me. 1.使用审计,需要先激活审计功能1)查看系统中默认的与审计相关的参数设置sys@ora...

看一下Oracle的审计功能(包括FGA细粒度审计)能给我们带来些什么的强悍效果。
我将通过这个小文儿向您展示一下Oracle很牛的审计功能。Follow me.
1.使用审计,需要先激活审计功能
1)查看系统中默认的与审计相关的参数设置
sys@ora10g> conn / as sysdba
Connected.
sys@ora10g> show parameter audit
NAME                  TYPE      VALUE
--------------------- --------- --------------------------------------
audit_file_dest       string    /oracle/app/oracle/admin/ora10g/adump
audit_sys_operations  boolean   FALSE
audit_syslog_level    string
audit_trail           string    NONE
2)对上面所列的参数进行一下解释
(1)AUDIT_FILE_DEST = 路径
指示出审计的文件存放的路径信息,我们这里显示的是“/oracle/app/oracle/admin/ora10g/adump”
不管打开还是不打开审计功能,这个目录项都会记录以sysdba身份的每次登录信息,有兴趣的朋友可以到这个目录中查看一下。
例如:
$ cat ora_9915.aud
Audit file /oracle/app/oracle/admin/ora10g/adump/ora_9915.aud
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options
ORACLE_HOME = /oracle/app/oracle/product/10.2.0/db_1
System name:    Linux
Node name:      testdb183
Release:        2.6.18-128.el5
Version:        #1 SMP Wed Dec 17 11:41:38 EST 2008
Machine:        x86_64
Instance name: ora10g
Redo thread mounted by this instance: 1
Oracle process number: 13
Unix process pid: 9915, image: oracle@testdb183 (TNS V1-V3)
Wed Aug 26 19:24:11 2009
ACTION : 'CONNECT'
DATABASE USER: '/'
PRIVILEGE : SYSDBA
CLIENT USER: oracle
CLIENT TERMINAL: pts/1
STATUS: 0
(2)audit_sys_operations
默认值是FALSE,如果开启审计功能,这个参数需要修改为TRUE。
(3)audit_syslog_level
       语句:指定审计语句或特定类型的语句组,象审计表的语句 CREATE TABLE, TRUNCATE TABLE, COMMENT ON TABLE, and DELETE [FROM] TABLE
       权限:使用审计语句指定系统权限,象AUDIT CREATE ANY TRIGGER
       对象:在指定对象上指定审计语句,象ALTER TABLE on the emp table
(4)AUDIT_TRAIL = NONE|DB|OS
        DB--审计信息记录到数据库中
        OS--审计信息记录到操作系统文件中
        NONE--关闭审计(默认值)
3)修改参数audit_sys_operations为“TRUE”,开启审计的功能
sys@ora10g> alter system set audit_sys_operations=TRUE scope=spfile;
System altered.
4)修改参数audit_trail为“db”,审计信息记录到数据库中
sys@ora10g> alter system set audit_trail=db scope=spfile;
System altered.
5)注意,到这里如果需要使这些参数生效,必须重新启动一下数据库
sys@ora10g> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
sys@ora10g> startup;
ORACLE instance started.
Total System Global Area 1073741824 bytes
Fixed Size                  2078264 bytes
Variable Size             293603784 bytes
Database Buffers          771751936 bytes
Redo Buffers                6307840 bytes
Database mounted.
Database opened.
6)验证一些参数修改后的结果,这里显示已经修改完成
sys@ora10g> show parameter audit;
NAME                  TYPE     VALUE
--------------------- -------- --------------------------------------
audit_file_dest       string   /oracle/app/oracle/admin/ora10g/adump
audit_sys_operations  boolean  TRUE
audit_syslog_level    string
audit_trail           string   DB
2.开启了审计功能后,这里有一个有趣的效果,就是所有sysdba权限下的操作都会被记录到这个/oracle/app/oracle/admin/ora10g/adump审计目录下。这也是为什么开启了审计功能后会存在一些开销和风险。
1)假如我们在sysdba权限用户下执行下面三条命令
sys@ora10g> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
Session altered.
sys@ora10g> select * From dual;
D
-
X
sys@ora10g> show parameter spfile
NAME   TYPE   VALUE
------ ------ ------------------------------------------------------------
spfile string /oracle/app/oracle/product/10.2.0/db_1/dbs/spfileora10g.ora
2)使用tail命令可以看到在相应的trace文件中有如下的详细记录信息,有点意思的发现,可以看到“show parameter spfile”命令背后真正执行了什么样的SQL语句
Wed Aug 26 20:04:03 2009
ACTION : 'alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss''
DATABASE USER: '/'
PRIVILEGE : SYSDBA
CLIENT USER: oracle
CLIENT TERMINAL: pts/2
STATUS: 0
Wed Aug 26 20:04:03 2009
ACTION : 'BEGIN DBMS_OUTPUT.GET_LINES(:LINES, :NUMLINES); END;'
DATABASE USER: '/'
PRIVILEGE : SYSDBA
CLIENT USER: oracle
CLIENT TERMINAL: pts/2
STATUS: 0
Wed Aug 26 20:04:16 2009
ACTION : 'select * From dual'
DATABASE USER: '/'
PRIVILEGE : SYSDBA
CLIENT USER: oracle
CLIENT TERMINAL: pts/2
STATUS: 0
Wed Aug 26 20:04:16 2009
ACTION : 'BEGIN DBMS_OUTPUT.GET_LINES(:LINES, :NUMLINES); END;'
DATABASE USER: '/'
PRIVILEGE : SYSDBA
CLIENT USER: oracle
CLIENT TERMINAL: pts/2
STATUS: 0
Wed Aug 26 20:07:21 2009
ACTION : 'SELECT NAME NAME_COL_PLUS_SHOW_PARAM,DECODE(TYPE,1,'boolean',2,'string',3,'integer',4,'file',5,'number',        6,'big integer', 'unknown') TYPE,DISPLAY_VALUE VALUE_COL_PLUS_SHOW_PARAM FROM V$PARAMETER WHERE UPPER(NAME) LIKE UPPER('%spfile%') ORDER BY NAME_COL_PLUS_SHOW_PARAM,ROWNUM'
DATABASE USER: '/'
PRIVILEGE : SYSDBA
CLIENT USER: oracle
CLIENT TERMINAL: pts/2
STATUS: 0
3.演示一下对sec用户的t_audit表delete操作的审计效果
1)表t_audit信息如下
www.linuxidc.com@ora10g> select * from t_audit order by 1;
         X
----------
         1
         2
         3
         4
         5
         6
6 rows selected.
2)这里仅仅开启对表t_audit的delete操作的审计
sec@ora10> audit delete on t_audit;
Audit succeeded.
3)查看审计设置可以通过查询dba_obj_audit_opts视图来完成
www.linuxidc.com@ora10g> select OWNER,OBJECT_NAME,OBJECT_TYPE,DEL,INS,SEL,UPD from dba_obj_audit_opts;
OWNER  OBJECT_NAME  OBJECT_TYPE  DEL       INS       SEL       UPD
------ ------------ ------------ --------- --------- --------- ---------
SEC    T_AUDIT      TABLE        S/S       -/-       -/-       -/-
4)尝试插入数据
www.linuxidc.com@ora10g> insert into t_audit values (7);
1 row created.
5)因为我们没有对insert语句进行审计,所以没有审计信息可以得到
www.linuxidc.com@ora10g> select count(*) from dba_audit_trail;
  COUNT(*)
----------
         0
6)再尝试delete操作
www.linuxidc.com@ora10g> delete from t_audit where x=1;
1 row deleted.
7)不出所料,delete操作被数据库捕获
这里可以通过查询dba_audit_trail视图或者sys.aud$视图得到详细的审计信息,这种审计方法可以得到操作的时间,操作用户等较粗的信息(相对后面介绍的细粒度审计来说)
www.linuxidc.com@ora10g> select count(*) from dba_audit_trail;
  COUNT(*)
----------
         1
select * from dba_audit_trail;
select * from sys.aud$;
4.如想要取消对表t_audit的全部审计,需要使用手工方式来完成
sec@ora10> noaudit all on t_audit;
Noaudit succeeded.
通过查询dba_obj_audit_opts视图,确认确实已经取消的审计
www.linuxidc.com@ora10g> select * from dba_obj_audit_opts;
no rows selected









































































































































































    
 
 

您可能感兴趣的文章:

  • 在linux操作系统中如何对打印机,扫描仪使用的次数进行审计
  • 关于使用Ptrace系统调用监控进程问题
  • 急!!!AIX上监控CPU和内存使用率的脚本
  • Linux 下监控某进程 内存使用峰值的方法?
  • 怎么监控文件的变化(不使用轮循的方法)
  • Linux的主机怎么监控网络使用情况?
  • linux系统使用python监控apache服务器进程脚本分享
  • mytop 使用介绍 mysql实时监控工具
  • android Textview文字监控(Textview使用方法)
  • shell脚本监控linux系统内存使用情况的方法(不使用nagios监控linux)
  • 如何使用shell脚本实现监控程序消息队列阻塞情况?
  • python使用pyhook监控键盘并实现切换歌曲的功能
  • 使用C#开源文件实时监控工具Tail&TailUI介绍
  • 在Oracle中监控和跟踪索引使用情况
  • python中使用pyhook实现键盘监控的例子
  • python监控网卡流量并使用graphite绘图的示例
  • 使用apachetop实时监控日志、动态分析服务器运行状态
  • 使用Inotify 监控目录与文件的方法详解
  • c#实现数据同步的方法(使用文件监控对象filesystemwatcher)
  • Oracle10g使用sql获得ADDM报告以及利用ADDM监控表的dml情况
  • 使用Python的Supervisor进行进程监控以及自动启动
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux下不使用sudo命令执行docker的操作步骤
  • [请置顶]关于Linux的安装使用问题 请放到 软件使用/操作系统 里提问
  • 在Python3中使用urllib实现http的get和post提交数据操作
  • 请教,如何使用JDOM操作XML文档?
  • TinyXML(c++下操作xml的库)介绍,下载地址及使用代码举例
  • 紧急:请问有谁会使用Free BSD操作系统,请给予指点
  • c++ stl multimap基本操作使用技巧详细介绍
  • linux下使用tcl操作excel
  • ftp协议介绍及ftp常用的上传下载等操作命令使用方法
  • 说说你使用的操作系统
  • windows7操作系统介绍及各种使用技巧总结
  • 急问:!!如何使用shell作如下操作?
  • 操作系统的使用的处理死锁的算法
  • 有谁知道linux操作系统察看cpu使用率的命令,回答正确给高分,急,在线等待!!!
  • 有谁告诉我如何使用main中的args进行输入输出的操作?
  • 有没有使用最新内核的占用空间较小的linux操作系统
  • 只使用InputStream/OutputStream进行IO操作行吗?
  • 在用户态如何使用原子操作?
  • jquery链式操作的正确使用方法
  • 如何用ANSI C来获取操作系统文件系统使用率?
  • 在unix上如何使用磁带机,相关命令有那些,操作系统版本为aix 4.3
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • Python不使用print而直接输出二进制字符串
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • Office 2010 Module模式下使用VBA Addressof
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • c#中SAPI使用总结——SpVoice的使用方法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3