网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.9i新特性之——在线表格重定义研.
.Install Oracle 9i/10g On RHEL .
.Oracle与DB2数据类型的对应.
.在Oracle数据库上构建.NET应用程.
.ORACLE SQL性能优化系列(五).
.ORACLE 数据库备份技术.
.配置shark与oracle的连接.
.教你快速掌握Oracle数据库中的 b.
.关于怎样产生statpack.
.新型数据库体系结构-DAN.
.Keys,SuperKeys,Primary Keys.
.Relation Algebra.
.Oracle数据库中主要配置文件的经.
.Oracle-Decode()函数和CASE语句有.
.Oracle和SUN Solaris内核参数.
.Oracle数据库中每月工作日计算代.
.Oracle Database 10g:改善的表空.
.关于Oracle数据库中密码安全管理.
.通过异构服务设置访问多个SQL数据.
.基于Oracle9i的服务器性能评测.

oracle DBA about logs

发表日期:2008-2-9


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 -efgrep 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

上一篇:优化心得摘抄 人气:1020
下一篇:Oracle快速入门 人气:651
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐