Oracle限制連接的IP
在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檢測,對於用戶名檢測事不支持的。