windows8防火墙设置 windows8 防火墙如何设置oracle

windows8 防火墙想要设置下oracle,该怎么办呢?下面由小编给你做出详细的windows8 防火墙设置oracle方法介绍!希望对你有帮助!

windows8 防火墙设置oracle方法如下:

在windows上安装oracle服务后,本地访问数据库没问题,但远程计算机无法访问本地数据库,这种情况主要是由于本地防火墙造成的,关闭本地防火墙就可以解决该问题,但关闭防火墙后就会有安全隐患,下面就讲一下在不关闭防火墙的情况下实现数据库的远程访问。(所有的设置都是在安装数据库服务的机器上进行)

要访问防火墙后的windows oracle数据库,仅仅通过简单的打开固定TCP端口的方式是不行的。这个问题的根本原因是windows oracle数据库的BT设计(unix/linux无此问题)。

一、Oracle的网络通信端口原理

windows8防火墙设置 windows8 防火墙如何设置oracle

oracle数据库的网络访问采用了一个很BT的工作模式,其大概流程如下:

1) oracle server上的oracle net listener进程持续监听一个固定的TCP端口(缺省是1521);

2) client向server上的net listener端口发起连接请求;

3) listenr收到client的请求之后,建立与client的连接,并通知server新建一个数据库连接的服务进程(以下简称P),该进程会随机选择一个没有被使用的TCP端口并绑定,然后将端口号通知listener;

4) listenr将P绑定的端口号转发给client;

5) client收到P的端口号后,终止与listener的连接,然后通过P的绑定端口直接连接P;

到第5步,连接才最终完成,之后client就可以访问数据库了。

从上面的工作流程可以知道,在这种工作模式下,client实际最终连接的oracle server端口是随机的。所以根本无法在防火墙上预先设定固定的TCP端口来使oracle server可以被访问。据说oracle这么做也是不得已的,因为早期windows nt的TCP/IP部分有bug,直接使用公用端口连接会有问题,所以oracle才搞出这么个天才的设计。不过,NT4SP3之后不就没这个bug了吗,为啥到oracle 11g了还在用这个BT模式呢? 当然啦,现在网络安全性问题这么严重,如果真的无法使用防火墙,windows版的oracle数据库岂不是要卖不出去了吗? oracle公司当然不会那么白痴,从oracle 8i开始,windows版的oracle也可以使用正常的工作模式了,只不过默认仍是使用BT工作模式罢了。

只有Windows平台上的9i及以下版本的Oracle才会有这个问题。Oracle在Linux以及Unix平台下,多个进程间可以对端口进行复用,Oracle Server Process仍然使用的是跟监听进程一个端口(1521),客户端只连接了一次,并没有进行第二次连接,与上面描述的流程相比已经发生了变化。在Windows平台上,10g及以上版本的数据库,也同样利用端口复用,避免了这样的问题。实际上10g就是默认USE_SHARED_SOCKET为TRUE。

二、在防火墙中设置程序例外

在Oracle的BT模式下,其实可通过在防火墙中设置Oracle程序例外来穿越防火墙。在防火墙的例外中添加 oracle.exe 和TNSLSNR.exe 俩个应用程序。(在 "Oracle安装路径oracleproduct10.2.0db_1BIN" 中可以找到这俩个应用程序)

三、在防火墙中设置端口例外

在windows注册表的HKEY_LOCAL_MACHINESOFTWAREORACLEHOMEDIR (HOMEDIR是你机器上安装的oracle数据库的instance名称)中添加一个字符串键值,名称为USE_SHARED_SOCKET,值为TRUE(注意大小写),然后重启oracle instance或直接重启windows就OK了。

这样,你只要再在防火墙上打开oracle的监听端口(缺省为1521),就可以在防火墙外访问oracle了!

需要在MTS模式下(共享模式) Oracle默认是专用模式。

经试验发现,如果不在init文件中设参数的话,Oracle仍然会要求一个随机端口和1521端口来共同通讯,只是这个随机端口,并不随客户端会话和登 录的变化而变化,在没有重启服务器时,是固定的。 (试验发现,在专用模式下,每次连接,oracle服务器会按+1方式,提供一个非1521的端口。) 所以,还需要在init.ora文件的最后加上一条参数:

mts_dispatchers="(address=(protocol=tcp)(host=myoradb)(port=1521))(dispatchers=1)"

这样才真正实现只用一个端口,穿过防火墙。

  

爱华网本文地址 » http://www.aihuau.com/a/256161/789092733.html

更多阅读

win10关闭防火墙 如何关闭系统防火墙

如何关闭系统防火墙――简介有时候进行一些软件测试,或者远程控制等等其他操作会出现失败,有些造成这些失败的原因是系统的防火墙没有关闭,到底防火墙怎么关闭呢?下边说一下XP系统的防火墙如何关闭。如何关闭系统防火墙――工具/原料XP

如何关闭电脑的防火墙 电脑防火墙如何关闭?

电脑防火墙如何关闭?――简介电脑防火墙怎么关闭呢?电脑的防火墙使用cmd命令如何关闭。今天我们就来演示一下怎么使用快捷方式来关闭电脑的防火墙。电脑防火墙如何关闭?――工具/原料cmd命令行win7操作系统电脑防火墙如何关闭?――方

如何关闭手机防火墙 如何关闭网络防火墙

如何关闭网络防火墙――简介网络防火墙本来对系统是其保护作用的,不过对于爱玩游戏的玩家来说非常头疼,魔兽争霸局域网进不去等等。那如何关闭呢?如何关闭网络防火墙――方法/步骤如何关闭网络防火墙 1、打开电脑的控制面板,在搜索哪里

开启windows防火墙 如何开启与设置Windows 8防火墙

系统的安全性是用户们应该时常注意的问题,而在杀毒软件的保护之外,我们还建议通过开启系统自带的防火墙来进一步巩固系统的安全防卫。接下来,小编就将详细介绍如何开启Win8的防火墙。首先自然是要找到Win8中防火墙的位置。将鼠标移动

windows7自带防火墙 Windows7自带的防火墙如何打开

防火墙对于每一个电脑用户的重要性不言而喻,尤其是在当前网络威胁泛滥的环境下,通过专业可靠的工具来帮助自己保护电脑信息安全十分重要。如果你使用的是windows7操作系统,那么启用Windows 7自带的防火墙就能达到较好的效果,下面就让小

声明:《windows8防火墙设置 windows8 防火墙如何设置oracle》为网友久戦帝王分享!如侵犯到您的合法权益请联系我们删除