在oracle中,可以控制哪些IP可以连接数据库,哪些IP不能连接数据库。在9i及以后中,单纯的设定允许的IP和禁止的IP,修改sqlnet.ora是最好最快的方法
1、修改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)
2、重启监听
$ 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连接数据库的时候会显示如下报错:
需要注意的问题:
1、 需要设置参数为YES,这样才能激活。
2、 建议设置允许访问的IP,因为IP地址有可能被随意修改,就不能起到自己的目的。
3、 TCP当参数TCP.INVITED_NODES和TCP.EXCLUDED_NODES设置的地址相同的时候将覆盖TCP.EXCLUDED_NODES设置。
4、 需要重启监听器才能生效。
5、 这个方式只是适合TCP协议。
6、 这个配置适用于9i以上版本。在9i之前的版本使用文件protocol.ora。
7、 在服务器上直接连接数据库不受影响。
8、 这种限制方式事通过监听器来限制的。
9、 这个限制只是针对IP检测,对于用户名检测事不支持的。