`
fsclh
  • 浏览: 36671 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Oracle 日志监控

阅读更多
1. 修改用户 sys/system/scott/sys_man(oem使用)的密码;
2. 进入dba studio看看系统有多少个用户,有没有可疑用户
3. 不用随便给普通用户赋予DBA角色,普通用户赋予CONNECT或RESOURCE角色或者根据需要赋予相关的权限。
4. 8i以上使用LogMiner工具,关于此工具的使用查阅精华区或faqs
5. 经常查看Alert<sid></sid>.log文件,该文件路径: $ORACLE_HOME/admin/sid/bdump.
    用LogMiner包看一下,可以看到他是用的那个用户修改的那些表修改了什么。
    Example of Using LogMiner
    Assume that the data dictionary extract was taken to a flat file named
    '/usr/oracle/dbs/dict.txt'
    The DBA first specifies five redo logs to be analyzed
    execute dbms_logmnr.add_logfile (filename => '/usr/oracle/dbs/arch123.dbf',
    options => dbms_logmnr.NEW);
    -- identifying this file starts a new list of files to analyze
execute dbms_logmnr.add_logfile (filename => '/usr/oracle/dbs/arch124.dbf',
options => dbms_logmnr.ADDFILE);
execute dbms_logmnr.add_logfile (filename => '/usr/oracle/dbs/arch125.dbf',
options => dbms_logmnr.ADDFILE);
execute dbms_logmnr.add_logfile (filename => '/usr/oracle/dbs/arch126.dbf',
options => dbms_logmnr.ADDFILE);
execute dbms_logmnr.add_logfile (filename => '/usr/oracle/dbs/arch127.dbf',
options => dbms_logmnr.ADDFILE);
The DBA then specifies the location of the dictionary with,
execute dbms_logmnr.start_logmnr( dictfilename => '/usr/oracle/dbs/dict.txt' );
The DBA is now ready to issue a select against the v$logmnr_contents view
select operation, sql_redo, sql_undo
from v$logmnr_contents
where seg_owner = 'SCOTT' and seg_name = 'ORDERS' and
operation = 'DELETE' and username = 'RON';
listner.log 里面会有你想要的证据
查listener.log只能查到从哪里登录,查不到输入什么sql语句。
保密有一点很关键但又很容易被忽略的,很多人都是直接输入
sqlplus username/password@connstring   (一般服务器都安装在unix系统)
登录的,如此一来,别人只要用ps -ef|grep sqlplus就可以看到你的用户名和密码了。
应该用
sqlplus  然后再输入用户名和密码。
也可以先定义一个变量
$STRI=username/password;export $STRI
sqlplus $STRI@connstring
这样别人就看不到你的密码了。

注意查看system的视图v$sql,也许会有收获。
当然用审计功能 :
方法一:
用以下的方式可以监控登入注销的用户:
创建如下的两张表:
create table login_log   -- 登入注销信息表
(
    session_id int not null, -- sessionid
    login_on_time  date,  -- 登入时间
    login_off_time  date,  -- 注销时间
    user_in_db varchar2(30), -- 登入的db user
    machine    varchar2(20),    -- 机器名
    ip_address varchar2(20), -- ip地址
    run_program varchar2(20)    -- 以何程序登入
);
create table allow_user   -- 网域用户表
(
    ip_address varchar2(20),  -- ip地址
    login_user_name nvarchar2(20)   -- 操作者姓名
);
创建如下的两个触发器:
create or replace trigger login_on_info  -- 纪录登入信息的触发器
after logon on database
Begin
    insert into login_log(session_id,login_on_time,login_off_time,user_in_db,machine,ip_address,run_program)
    select AUDSID,sysdate,null,sys.login_user,machine,SYS_CONTEXT('USERENV','IP_ADDRESS'),program
    from v$session where AUDSID = USERENV('SESSIONID');  --当前SESSION
END;
create or replace trigger login_off_info -- 纪录注销信息的触发器
before logoff on database
Begin
 update login_log set  login_off_time = sysdate
 where session_id = USERENV('SESSIONID'); --当前SESSION
exception
    when others then
     null;
END;
查询语句:
column a format a20
column b format a20
column IP_ADDRESS format a30
select to_char(login_on_time,'yyyy-mm-dd hh24:mi:ss') as login,to_char(login_off_time,'yyyy-mm-dd hh24:mi:ss') as logout,ip_address from login_log;
方法二:
用如下的方式可以审计执行drop动作的事件:
/**
 * drop语句的审计日志表
 */
create table drop_log
(
    session_id int not null,  -- sessionid
    drop_time  date,    -- drop的时间
    ip_address varchar2(20),  -- ip地址
    object_owner varchar2(30),  -- 对象的拥有者
    object_name varchar2(30),  -- 对象名称
    object_type varchar2(20),  -- 对象类型
    drop_by_user varchar2(30) -- 执行drop语句的用户
);
create or replace trigger drop_info
after drop on mfg0513user.schema   -- 在mfg0513user用户上创建审计drop的触发器
begin
    insert into drop_log
       (session_id,
       drop_time,
       ip_address,
       object_owner,
       object_name,
       object_type,
       drop_by_user)
     values(USERENV('SESSIONID'),
       sysdate,
       SYS_CONTEXT('USERENV','IP_ADDRESS'),
       sys.dictionary_obj_owner,
       sys.dictionary_obj_name,
       sys.dictionary_obj_type,
       sys.login_user);   
end;

To collect auditing results, you must set the initialization parameter AUDIT_TRAIL to DB.
To choose auditing for statements issued by the users aaa that query or update a table or view, issue the following statement:
AUDIT SELECT TABLE, UPDATE TABLE
   BY aaa;
To obtaining information:
   --DBA_AUDIT_TRAIL
   --DBA_AUDIT_EXISTS
   --DBA_AUDIT_OBJECT
   --DBA_AUDIT_SESSION
   --DBA_AUDIT_STATEMENT
 
分享到:
评论
2 楼 guji528 2012-06-14  
CREATE OR REPLACE TRIGGER user_login_trig
     AFTER LOGON ON user.schema
可记录用户登录
1 楼 guji528 2012-06-13  
怎样才能记录登录失败的用户信息呢,比如密码错误导致的无法登录。

相关推荐

    oracle dg监控程序、归档日志监控程序

    本文将深入探讨Oracle DG监控程序以及归档日志监控程序的相关知识点。 一、Oracle Data Guard (DG) 简介 Oracle Data Guard提供了一套全面的保护机制,确保在主数据库出现故障时,数据能够被安全地恢复。它通过创建...

    oracle常用监控脚本

    Oracle数据库是全球广泛使用的大型企业级关系型数据库管理系统,对于其高效、稳定运行,监控显得尤为重要。"Oracle常用监控脚本"通常包含了多种用于检查数据库性能、资源使用情况以及问题排查的工具和脚本。这些脚本...

    oracle日志文件大全

    ### Oracle日志文件大全知识点详解 #### 一、Oracle中的几类日志文件 Oracle数据库管理系统使用多种类型的日志文件来记录系统运行期间的各种活动,这些日志文件不仅有助于数据库的管理和维护,还为故障诊断提供了...

    oracle通过日志查看数据库变更情况.txt

    ### Oracle日志系统概览 Oracle数据库的日志系统主要包括重做日志(Redo Log)和归档日志(Archived Logs)。重做日志记录了对数据库所做的所有修改操作,是实现数据库恢复的关键。当一个事务提交后,其修改操作会...

    定时删除oracle日志脚本

    因此,定时删除Oracle日志脚本就显得非常必要。 首先,我们需要了解Oracle日志的主要类型: 1. **Redo Log Files**:这是Oracle数据库的核心组件,记录所有事务的更改。分为当前日志(active)和已用日志(used)...

    关于oracle日志文件.docx

    主要的Oracle日志类型包括: 1. **Redo log files (联机日志或重做日志)**: 这些日志记录了所有对数据库的改变,无论是通过DML(数据操纵语言)如INSERT、UPDATE、DELETE,还是DDL(数据定义语言)如CREATE、ALTER...

    oracle数据库监控

    在当前的IT环境中,Oracle数据库作为关系型数据库管理系统的重要组成部分,它的监控和运维管理显得尤为重要。有效的监控不仅可以帮助数据库管理员(DBA)及时发现并解决问题,还可以提高数据库的性能和稳定性,确保...

    Oracle数据库监控、性能检查小工具(OPCT)

    20.SGA重做日志缓冲区命中率 21.内存和硬盘排序比率 22.正在运行的SQL语句 23.字符集 24.MTS 25.碎片程度高的表 26.使用CPU多的用户 27.KILL用户会话 使用说明详细见:...

    Oracle日志分析

    ### Oracle日志分析知识点 #### 一、Oracle日志分析概述 Oracle数据库是业界广泛使用的高性能关系型数据库管理系统之一。为了确保数据的一致性和可靠性,Oracle数据库采用了多种机制来记录和跟踪事务处理过程中的...

    oracle日志分析工具LogMiner使用.

    Oracle 日志分析工具 LogMiner 使用 Oracle 日志分析工具 LogMiner 是 Oracle 数据库中的一种功能强大且灵活的日志分析工具,它可以帮助数据库管理员、开发人员和用户快速地对数据库进行日志分析和问题诊断。下面是...

    oracle性能监控常用语句集合

    在实际工作中,结合日志分析、性能测试工具以及Oracle的其他管理工具,如Enterprise Manager Cloud Control,可以进一步提升性能监控的效果。记住,理解语句背后的原理和逻辑是优化的关键,而不仅仅是复制和执行。

    如何正确删除Oracle归档日志

    ### 如何正确删除Oracle归档日志 #### 一、问题背景 在Oracle数据库的日常运维工作中,归档日志的管理和清理是一项重要的任务。随着业务的发展和数据的增长,归档日志会不断累积,占据大量的磁盘空间。如果不及时...

    oracle监控系统

    9. **日志分析**:收集和分析Oracle数据库的日志信息,辅助诊断和问题排查。 10. **性能调优**:根据监控数据提出数据库参数调优建议,提升整体性能。 通过Oracle 监控系统,DBA可以更加高效地管理工作,降低维护...

    spotlight on oracle性能监控教程

    ### Spotlight on Oracle性能监控教程详解 #### 一、Spotlight on Oracle 功能介绍 Spotlight on Oracle是一款由Dell Quest Software开发的专业Oracle数据库性能监控工具。它提供了丰富的功能来帮助数据库管理员...

    Oracle性能监控脚本

    Oracle性能监控是数据库管理员(DBA)日常工作中的一项关键任务,它涉及到对数据库系统的各种性能指标进行跟踪、分析和优化,以确保系统高效稳定运行。本文将深入探讨Oracle性能监控脚本的应用及其重要性,同时提供...

    oracle日志丢失数据库恢复技巧

    ### Oracle日志丢失数据库恢复技巧 #### 背景与问题描述 在Oracle数据库管理过程中,日志文件丢失是一个常见的问题。例如,在某次事件中,测试部门反馈了一个关于内部网络上的Oracle数据库(版本1.105)无法正常...

    Oracle工作总结——日志文件切换频率的调整

    - **监控与性能调整**:使用Oracle的性能监视工具(如AWR、ASH等)来持续监控日志切换的性能影响,根据实际情况进行微调。 总的来说,优化Oracle数据库的日志文件切换频率是一项涉及多方面因素的工作,需要综合考虑...

    aix_设置定期删除oracle日志归档

    这篇博文将介绍如何在AIX系统上设置自动删除Oracle日志归档的机制。 首先,我们需要理解Oracle的日志归档模式。在Oracle数据库中,归档日志模式是在数据库运行在归档模式下时产生的,当一个redo log切换发生时,旧...

    oracle之监控报警

    综上所述,Oracle的监控报警机制涵盖了多种工具和技术,从基础的警报日志到复杂的性能分析工具,再到灵活的邮件报警配置。理解和熟练运用这些功能,对于提升数据库的管理和维护效率至关重要。通过持续监控和适时的...

    oracle重做日志原理

    这将显示VLF的状态、大小、起始位置等相关属性,帮助管理员监控和管理重做日志的使用情况。 总结,Oracle的重做日志通过VLF和LSN等机制保证了数据库在面对各种故障时能够快速、准确地恢复到一致性的状态。了解并...

Global site tag (gtag.js) - Google Analytics