Home  >  Article  >  Database  >  oracle DBA about logs

oracle DBA about logs

WBOY
WBOYOriginal
2016-06-07 15:18:02979browse

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 1. 修改用户 sys/system/scott/sys_man(oem使用)的密码; 2. 进入dba studio看看系统有多少个用户,有没有可疑用户 3. 不用随便给普通用户赋予DBA角色,普通用户赋予CONNECT或 RESOURCE角色或者根据

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

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

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

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

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

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

 

oracle DBA about logs

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn