问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何解决局域网中Windows防火墙不能访问Oracle问题

发布网友 发布时间:2022-04-22 10:52

我来回答

2个回答

懂视网 时间:2022-05-06 14:53

Oracle与防火墙设置 要访问防火墙后的windows oracle数据库,仅仅通过简单的打开固定TCP端口的方式是不行的。 这个问题的根本原因是windows oracle数据库的BT设计(unix/linux无此问题)。 一、Oracle的网络通信端口原理 oracle数据库的网络访问采用了一个很BT

  Oracle与防火墙设置

  要访问防火墙后的windows oracle数据库,仅仅通过简单的打开固定TCP端口的方式是不行的。

  这个问题的根本原因是windows oracle数据库的BT设计(unix/linux无此问题)。

  一、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与防火墙设置 三联

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

  在windows注册表的 (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)"

热心网友 时间:2022-05-06 12:01

在防火墙例外中,添加端口1521端口就样局域网内的其他机器就可以访问你的ORACLE了.
在防火墙的入站规则中,新建端口规则。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
青海摇什么时候火的 宋庄镇都有哪些村 唐山多地解除封控管理、静态管理,市民仍需做好哪些防护? 拼多多上面的旗舰店是正品吗 ...尺是20:1的图纸上,应画多少厘米,在比例尺是1:200的图纸上测_百度知... 4x2=8,4x20=8,4x200=800,我发现了:一个因数不变,另外一个因数乘以几,积... 小学三年级数学上册4X2=8,4X20=80,4X200=800我发现:一个因数不变,另... 描写雪的段落优选好句60句 程序员最低学历是多少 电脑不识别独显了怎么办? win7防火墙异常错误代码13,不能访问局域网其他主机 如何解除防火墙阻止的网络连接 怎样解除防火墙“禁止某程序访问网络” 如何解决防火墙阻止访问的问题 开启防火墙电脑不能互相访问怎么办 求赵姓女孩姓名! 赵姓女孩起名,快!!! 姓赵属猪的起什么名字? 姓赵给猪宝宝取名女孩, 为什么QQ加好友对方显示私密账号? 比如你加别人的扣扣但是他设置了问题,你不知道答案,但是怎么才能发消息给他或者让他知道? qq对方进行了隐私设置怎么办。加到好友? 如何扩大C:\盘空间大小 qq号被盗了怎么办密保手机也被改了? 404 Not Found QQ号被盗好友被删还绑定了别人的手机该如何找回 国家反诈骗中心有什么用? 反诈骗中心给你发信息是什么情况? 反诈骗中心是做什么的呢?我被诈骗十几万了 该怎么办 广西反诈骗中心邮箱多少 为什么开着防火墙不能打开网页 404 Not Found 联想电脑防火墙无法打开 错误代码0x8007045b如何解决 如何解除防火墙对一些软件的禁止访问 服务访问不能通过Windows防火墙,怎么办 电脑局域网禁止访问怎么办,如何解决。 如何取消防火墙对部分网址的禁止访问? 为什么有些网页有的电脑能打开,有的电脑打不开 有什么灭鼠的好方法? 什么东西灭老鼠最有效 用什么治老鼠最好 求office 2016 专业版密钥 A3+桌面食品打印机有哪些功能?打印速度怎么样? A3的打印机怎么打印A3的图纸 A3打印机怎么打印证书 A3打印机那个牌子好?实惠、耐用、长久 大型打印机为什么叫A3打印机 A3彩色激光打印机 a3激光打印机哪个好 过去分词在被动语态中到底是什么词性