专注做网管的电脑公司
  • 微信公众号
  • 联系我们
  • 客服热线:13726442969
  • 禁止指定IP访问oracle

    2020-09-03 10:26:50 431

    限定特定IP访问数据库可编辑sqlnet.ora文件


    sqlnet.ora文件路径在$OREACLE_HOME/network/admin/samples下有模板,可以copy到$OREACLE_HOME/network/admin路径下修改增加如下内容:
    tcp.validnode_checking=yes
    #允许访问的ip
    tcp.invited_nodes=(ip1,ip2,……)
    #不允许访问的ip
    tcp.excluded_nodes=(ip1,ip2,……)
    tcp.invited_nodes和tcp.excluded_nodes只用一个,要么设置允许的IP,要么设置不允许的IP,与tcp.validnode_checking配合使用。

    修改sqlnet.ora后,重新启动listener服务,修改就可以生效了。


    注:经笔者先实验后在生产系统上操作,11gR2 用lsnrctl reload命令重载监听不能生效,需用lsnrctl stop停掉监听,再用lsnrctl start启动监听才行(为了让启动的监听立即生效执行alter system register;),不知道用lsnrctl reload命令重载监听是不是针对9i和10g的,这个笔者没有实验过;


    如果不允许的IP客户端连接过来,会出现以下错误:

    ERROR: ORA-12537: TNS: 连接已关闭

    或者是

    爱土壤电脑爱土壤电脑

    爱土壤电脑

    这就是在oracle服务端设置了IP限制后的效果。



    在mos上查到sqlnet.ora文件的功能:



    1. Specify the client domain to append to unqualified names


    2. Prioritize naming methods


    3. Enable logging and tracing features


    4. Route connections through specific processes


    5. Configure parameters for external naming


    6. Configure Oracle Advanced Security


    7. Use protocol-specific parameters to restrict access to the database


    这里使用的就是sqlnet.ora文件的第七项功能限制访问数据库的连接。


    适用版本:oracle 9i以上版本
    在9i提供了几个参数:
    TCP.EXCLUDED_NODES
    设置禁止访问数据库的IP地址列表。
    TCP.INVITED_NODES
    设置允许访问数据库的IP地址列表,当这个参数和TCP.EXCLUDED_NODES设置的地址相同的时候将覆盖TCP.EXCLUDED_NODES设置。
    TCP.VALIDNODE_CHECKING
    检测上述参数的设置。