設定oracle資料庫IP訪問限制(IP白名單黑名單)

swq618發表於2016-11-11

可以透過修改sqlnet.ora檔案來限制某些IP地址的訪問,修改完成後,可能需重啟監聽生效。(可以lsnrctl reload)
如果$ORACLE_HOME/network/admin/目錄下沒有sqlnet.ora檔案,可以從samples目錄下複製個sqlnet.ora或者直接vi
###########二選一##############
#允許訪問的IP
TCP.INVITED_NODES=(192.168.1.103,ip2,ip3,..,..本地IP..)若使用白名單,必須本地IP,否則監聽會起不來
#不允許訪問的IP
TCP.EXCLUDED_NODES=(192.168.1.102)
#檢測上述引數的設定
TCP.VALIDNODE_CHECKING=yes (這個引數是必須的)

#允許訪問的ip tcp.invited_nodes =(ip1,ip2,……) #不允許訪問的ip tcp.excluded_nodes=(ip1,ip2,……)
TCP.INVITED_NODES:設定允許訪問的IP地址列表,當這個引數和TCP.EXCLUDED_NODES設定的地址相同的時候將覆蓋TCP.EXCLUDED_NODES設定。

當不允許訪問的客戶端連入時,會出現下列錯誤
as sysdba
ERROR:
ORA-12537: TNS:connection closed


Warning: You are no longer connected to .


需要注意的問題:
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檢測,對於使用者名稱檢測事不支援的。
10、使用觸發器(透過監聽器的限制,通常屬於輕量級的,比在資料庫內部透過觸發器進行限制效率要高)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29674916/viewspace-2128278/,如需轉載,請註明出處,否則將追究法律責任。

相關文章