科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道oracle DBA about logs

oracle DBA about logs

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

个用户修改的那些表修改了什么。

作者:中国IT实验室 来源:中国IT实验室 2007年9月15日

关键字: 甲骨文 安装配置 数据库 ORACLE

  • 评论
  • 分享微博
  • 分享邮件

1. 修改用户 sys/system/scott/sys_man(oem使用)的密码;

    2. 进入dba studio看看系统有多少个用户,有没有可疑用户

    3. 不用随便给普通用户赋予DBA角色,普通用户赋予CONNECT或
       RESOURCE角色或者根据需要赋予相关的权限。

    4. 8i以上使用LogMiner工具,关于此工具的使用查阅精华区或faqs

    5. 经常查看Alert<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;

方法二:
用如下的方式可以???行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

 

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章