限制訪問Oracle客戶端IP方法總結

litterbaby發表於2007-04-01
限制訪問Oracle客戶端IP方法總結[@more@]

限制訪問Oracle客戶端IP方法總結

itpub上有一個帖子討論了一個話題,就是關於限定訪問Oracle客戶端IP的方法問題的討論,我印象中似乎這樣的問題在論壇上已經討論了比較多了,今天就總結一下。

http://www.itpub.net/743725,1.html

這裡討論的在Oracle資料庫層面上限制IP的方法,當然還有可以在網路層面上限制IP,例如防火牆軟體等方式。應用層,例如:WebLogic設定訪問資料庫的IP

Oracle資料庫中由於版本的差異,可以透過不同的方式來解決這些問題。

有幾種方式來實現這樣的功能:

1、 修改SQLNET.ora檔案限制訪問資料庫的IP

2、 使用觸發器實現。

sqlnet.ora檔案的功能:

1. Specify the client domain to append to unqualified names

2. Prioritize naming methods

3. Enable logging and tracing features

4. Route connections through specific processes

5. Configure parameters for external naming

6. Configure Oracle Advanced Security

7. Use protocol-specific parameters to restrict access to the database

這裡使用的就是sqlnet.ora檔案的第七項功能限制訪問資料庫的連線。

適用版本:oracle 9i以上版本

9i提供了幾個引數:

TCP.EXCLUDED_NODES

設定禁止訪問資料庫的IP地址列表。

TCP.INVITED_NODES

設定允許訪問資料庫的IP地址列表,當這個引數和TCP.EXCLUDED_NODES設定的地址相同的時候將覆蓋TCP.EXCLUDED_NODES設定。

TCP.VALIDNODE_CHECKING

檢測上述引數的設定。

例如:

tcp.validnode_checking=yes

#允許訪問的ip

tcp.invited_nodes =(ip1,ip2,……)

#不允許訪問的ip

tcp.excluded_nodes=(ip1,ip2,……)

透過這樣的設定就可以根據自己的需要更改,

需要注意的問題:

1、 需要設定引數為YES,這樣才能啟用。

2、 建議設定允許訪問的IP,因為IP地址有可能被隨意修改,就不能起到自己的目的。

3、 TCP當引數TCP.INVITED_NODESTCP.EXCLUDED_NODES設定的地址相同的時候將覆蓋TCP.EXCLUDED_NODES設定。

4、 需要重啟監聽器才能生效。

5、 這個方式只是適合TCP協議。

6、 這個配置適用於9i以上版本。在9i之前的版本使用檔案protocol.ora

7、 在伺服器上直接連線資料庫不受影響。

8、 這種限制方式事透過監聽器來限制的。

9、 這個限制只是針對IP檢測,對於使用者名稱檢測事不支援的。

10、

使用觸發器

create or replace trigger stop_52_connect

after logon on scott2.schema

declare

ipinfo VARCHAR2(30);

begin

select sys_context('userenv','ip_address') into ipinfo from dual;

if ipinfo='172.16.0.52' then

raise_application_error('-20001','you can not logon by scott2');

end if;

end stop_52_connect;

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

相關文章