1. 程式人生 > >oracle配置訪問白名單教程

oracle配置訪問白名單教程

文件 reload div 當前 star lan 進入 .net 參考

出於提高數據安全性等目地,我們可能想要對oracle的訪問進行限制,允許一些IP連接數據庫或拒絕一些IP訪問數據庫。

當然使用iptables也能達到限制的目地,但是從監聽端口變更限制扔可生效、只針對oracle自己不和其他端口的限制相混雜和不需要root賬號這幾方面來說,通過配置sqlnet.ora文件來進行訪問限制可能是一種更好的選擇。

1.配置sqlnet.ora文件

進入$TNS_ADMIN(一般對應的真實路徑形如/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin)查看是否存在sqlnet.ora文件及是否已配置tcp.validnode_checking、tcp.invited_nodes、tcp.excluded_nodes項。

如果文件存在且已有這幾項,則在此基礎上修改這幾項;如果文件存在但這幾項不存在,則在最後追加;如果文件不存在則直接新建。

oracle默認是沒有的,我們以沒有為例新建該文件,並寫入以下內容:

tcp.validnode_checking=yes
tcp.invited_nodes=(192.168.220.128,127.0.0.1)
tcp.excluded_nodes=(192.168.220.1)

tcp.validnode_checking--此項是啟用IP合法檢查,此項是必須配置的,如果不啟用其他兩項配了也沒用

tcp.invited_nodes--此項是允許連接數據庫的IP地址,多個地址用逗號(半角)隔開;如果啟用此項,一定要配上本地地址不然監聽無法啟動。

tcp.excluded_nodes--此項是不允許連接數據庫的IP地址,多個地址用逗號(半角)隔開;如果與tcp.invited_nodes有相同IP,則還是允許該IP訪問數據庫

tcp.invited_nodes和tcp.excluded_nodes其實可以只配置一項,當只配tcp.invited_nodes時就是白名單,在此項列表中的所有IP允許訪問數據庫,所有不在此項列表中的所有IP拒絕訪問數據庫;

當只配置tcp.excluded_nodes時,在此項列表中的所有IP拒絕訪問數據庫,所有不在此項列表中的所有IP允許訪問數據庫。

2.重新加載使配置生效

如果之前不存在sqlnet.ora則需要重啟監聽

lsnrctl stop
lsnrctl start

如果之前存在sqlnet.ora則只需要重新加載配置即可

lsnrctl reload

關於重啟和reload的區別,應該是監聽完全停上和不完全停止的區別;使用stop/start當前所有已連接的會話會強制斷開,reload不會斷開已有會話。

參考:

http://www.linuxidc.com/Linux/2014-10/108650.htm

http://blog.itpub.net/22664653/viewspace-707358/

oracle配置訪問白名單教程