oracle如何抓包 oracle数据库抓包

ORACLE 怎么破解登录? 利用抓包工具能不能破解登陆? 或者怎么绕过ORACLE 本地登陆的限制?

呵呵,不要做坏事啊.

成都创新互联是一家专业提供丁青企业网站建设,专注与成都网站建设、网站建设H5高端网站建设、小程序制作等业务。10年已为丁青众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

抓包工具应该不可以,因为验证时的数据包是加密的,破解起来难度很大。

ORACLE优化

2000多包是一次交互,还是一共交互?

因为oracle的查询有点变态,如果是初次连接,那么会先传一个交互,这边说我这里要连接了,服务器说,我知道了,正在查询是否可以同意。过一会,同意连接,分给你内存多少,你的权限是什么,查询吧。再一个交互:这边说我要查xxx,服务器说:好的。过了一会,你的查询结果是xxxx(但不是直接发结果,题头是什么,数据格式什么样子。。。好象还包括执行计划,执行时间,条数等等,这些内容好象都会发送,只是好象,这部分忘的差不多了,很久没搞这块内容了)

如果是一次交互,就是说,你抓的包没有多次交互的情况,那么只能是减少查询内容了,毕竟带宽没有固网那么足,假设你固网是查询5个字段,那么动网就三个主要字段,而且每叶内容减少,多分页,这样能提高一些。现在喜欢用“抢带宽”的方式,这样是能快一些,不过动网带宽真的不高,你就是全抢过来也不如固网(而且也不可能)。另外我记得oracle好象有一种是不要题头,不要前缀,不要xxxx的,你可以仔细找找,网上应该有,类似就是sqlplus 中的 set XXXXX off,类似这个,我在数据库传参脚本中用过,应该也能减少一些。

如果是一共交互,那么就设置一些数据库长连接(数量自己根据实际定),也就是你的页面断开,但是数据库不断开,下一个页面也用这个数据库用户,那么就不用开始的一个交互了,这样能省下两次交互,能减少一些。

查询频繁的那张表很大么,如果不大可以放在内存中,作为内存表,还有一些就是一般的oracle优化的内容,我想这部分你也清楚,我就不多写了。

最后说一点,个人观点,仅供参考。

如何在oracle数据更新时自动执行java代码,谢绝使用监听器,抓包等功能,因为产生的数量实在太大。

写一个after update的trigger,再写一个存储过程,trigger调用存储过程,存储过程调用java程序。

----------------------------建立一个java存储过程

1. 先看一下这个目录

[oracle@ocean ~]$ pwd

/home/oracle

[oracle@ocean ~]$ ls -l

total 8

-rw-r--r-- 1 oracle orains 604 Dec 26 2006 bash

2. 连接到test用户

SQL conn test/test

Connected.

3. 授于test用户文件读写和执行命令的权限

SQLexec dbms_java.grant_permission('TEST','SYS:java.io.FilePermission','ALL FILES','read,write,execute,delete');

PL/SQL procedure successfully completed.

SQLexec dbms_java.grant_permission('TEST','java.lang.RuntimePermission','*','writeFileDescriptor' );

PL/SQL procedure successfully completed.

4. 建立java存储过程,注意,这里的exp 路径和dmp文件的路径是数据库服务器的路径

create or replace and compile java source named "aa"

as

import java.io.*;

import java.lang.*;

import java.util.*;

import java.sql.*;

import oracle.sql.*;

public class aa

{

public static void invoke_exe() throws IOException

{

Process p=Runtime.getRuntime().exec("/oracle/product/9.2.4/bin/exp userid=test/test file=/home/oracle/test.dmp");

try

{

p.waitFor();

}catch(InterruptedException ie){System.out.println(ie);}

}

}

/

Java created.

Elapsed: 00:00:00.01

5. 建立调用java存储过程的存储过程call_aa

create or replace procedure call_aa

as language java

name 'aa.invoke_exe()';

/

6. 执行java存储过程

exec call_aa;

7. 检查一下dmp文件是否已经生成

[oracle@ocean ~]$ pwd

/home/oracle

[oracle@ocean ~]$ ls -l

total 28

-rw-r--r-- 1 oracle orains 604 Dec 26 2006 bash

-rw-r--r-- 1 oracle orains 16384 Jul 3 14:12 test.dmp

-----------------

exec dbms_Java.Grant_Permission('TEST', 'java.io.FilePermission', 'ALL FILE', 'read ,write, execute, delete');

exec dbms_Java.Grant_Permission('TEST', 'java.io.FilePermission', 'd:aa.bat', 'read ,write, execute, delete');

exec dbms_java.grant_permission('TEST','java.lang.RuntimePermission','*','writeFileDescriptor' );

请问在装有oracle数据库的局域网里,通过什么软件能看到客户端查询了什么,是从哪个端口出来的.

你问的这个问题,其实是数据库审计的概念。目前市面上这种产品非常之多,一般都是硬件类的产品。

他的工作原理是对你数据库所在的端口进行镜像,镜像到数据库审计产品的抓包口上,对所有数据库的访问包进行抓取分析,将数据库的语句提取出来显示到他的控制界面上。

一般包含的审计内容有:源IP,目标IP,源MAC地址,目标MAC地址,用户名,所访问的数据库语句(显示全部的语句),语句执行成功与否,数据库响应时间。

我还没有听说有哪款软件是可以实现这个功能的。最简单的一个就是:软件如果安装在一台服务器上,你根本无法配置抓包口对数据包进行抓取。

还有不懂给我留言吧。


本文标题:oracle如何抓包 oracle数据库抓包
文章路径:http://scyanting.com/article/hehjcp.html