oracle控制ip的连接


单纯的设定允许的IP和禁止的IP

在9i及以后中,修改sqlnet.ora其实是最好最快的方法



在linux版本的oracle中,默认是没有sqlnet.ora这个文件的

$ cd $ORACLE_HOME/network/admin
$ vi sqlnet.ora
#增加如下部分 
tcp.validnode_checking=yes  
  
#允许访问的IP 
tcp.invited_nodes=(192.168.100.252,192.168.100.253)  
  
#禁止访问的IP 
tcp.excluded_nodes=(192.168.100.222,192.168.100.232)


重启监听

$ lsnrctl stop
$ lsnrctl start


    这个时候,就只有ip地址为192.168.100.252以及ip地址为192.168.100.253的客户端可以连接数据库,而ip地址为192.168.100.222以及ip地址为192.168.100.232的客户端则无法连接数据库。当其他IP的客户端使用PL/SQL连接数据库的时候会显示如下报错:

wKiom1Qc-M2w2DvfAABeA8koMOU039.jpg


需要注意的问题: 

1、 需要设置参数为YES,这样才能激活。 

2、 建议设置允许访问的IP,因为IP地址有可能被随意修改,就不能起到自己的目的。 

3、 需要重启监听器才能生效。 

4、 这个方式只是适合TCP协议。 

5、 这个配置适用于9i以上版本。在9i之前的版本使用文件protocol.ora。 

6、 在服务器上直接连接数据库不受影响。 

7、 这个限制只是针对IP检测,对于用户名检测事不支持的。