如何限定IP訪問Oracle資料庫-轉

mengbing1990發表於2017-04-19
Oracle中,有3種辦法可以限定特定IP訪問資料庫。第一種是利用登入觸發器,如下:
CREATE OR REPLACE TRIGGER CHK_IP_LHR
  AFTER LOGON ON DATABASE
DECLARE
  V_IPADDR    VARCHAR2(30);
  V_LOGONUSER VARCHAR2(60);
BEGIN
  SELECT SYS_CONTEXT('USERENV', 'IP_ADDRESS'),
         SYS_CONTEXT('USERENV', 'SESSION_USER')
    INTO V_IPADDR, V_LOGONUSER
    FROM DUAL;
  IF V_IPADDR LIKE ('192.168.59.%') THEN
    RAISE_APPLICATION_ERROR('-20001', 'User '||V_LOGONUSER||' is not allowed to connect from '||V_IPADDR);
  END IF;
END;
/
需要注意的問題:
① 觸發的物件型別可以為DATABASE,也可以為“使用者名稱.SCHEMA”,如:
AFTER LOGON ON DATABASE
AFTER LOGON ON SCOTT.SCHEMA
② 當觸發的物件型別為DATABASE的時候,登入使用者不能擁有“ADMINISTER DATABASE TRIGGER”的系統許可權;當觸發的物件型別為“使用者名稱.SCHEMA”的時候,登入使用者不能擁有“ALTER ANY TIGGER”的系統許可權。否則,這些使用者還是會正常登入到資料庫,只是將相應的報錯資訊寫入到告警日誌中。所以,擁有IMP_FULL_DATABASE和DBA角色的使用者以及SYS和EXFSYS使用者將不能透過這種方式限制登入。
③ 隱含引數“_SYSTEM_TRIG_ENABLED”的預設值是TRUE,即允許DDL和系統觸發器。當設定隱含引數“_SYSTEM_TRIG_ENABLED”為FALSE的時候,將禁用DDL和系統觸發器。所以,當該值設定為FALSE的時候將不能透過這種方式限制登入。
第二種是修改$ORACLE_HOME/network/admin/sqlnet.ora檔案,增加如下內容:
TCP.VALIDNODE_CHECKING=YES  #開啟IP限制功能
TCP.INVITED_NODES=(127.0.0.1,IP1,IP2,……)  #允許訪問資料庫的IP地址列表,多個IP地址使用逗號分開
TCP.EXCLUDED_NODES=(IP1,IP2,……)  #禁止訪問資料庫的IP地址列表,多個IP地址使用逗號分開
之後重新啟動監聽器即可。這樣客戶端在登入的時候會報“ORA-12537: TNS:connection closed”的錯誤。
需要注意的問題:
① 需要設定引數TCP.VALIDNODE_CHECKING為YES才能啟用該特性。
② 一定要許可或不要禁止資料庫伺服器本機的IP地址,否則透過lsnrctl將不能啟動或停止監聽,因為該過程監聽程式會透過本機的IP訪問監聽器,而該IP被禁止了,但是透過服務啟動或關閉則不影響。
③ 當引數TCP.INVITED_NODES和TCP.EXCLUDED_NODES設定的地址相同的時候以TCP.INVITED_NODES的配置為主。
④ 修改之後,一定要重起監聽才能生效,而不需要重新啟動資料庫。
⑤ 這個方式只是適合TCP/IP協議。
⑥ 這個配置適用於Oracle 9i以上版本。在Oracle 9i之前的版本使用檔案protocol.ora。
⑦ 在伺服器上直接連線資料庫不受影響。
⑧ 這種限制方式是透過監聽器來限制的。
⑨ 這個限制只是針對IP檢測,對於使用者名稱檢測是不支援的。
第3種是修改資料庫伺服器的IPTABLES(配置檔案:/etc/sysconfig/iptables)來限制某些IP登入資料庫伺服器。如下:
iptables -A INPUT -s 192.168.59.1/32 -i eth0 -p tcp  --dport 1521 -j DROP
service iptables save
則,192.168.59.1這臺主機將不能透過1521埠連線到資料庫伺服器了,會報“ORA-12170: TNS:Connect timeout occurred”的錯誤。

轉至http://www.itpub.net/thread-2085377-1-1.html

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

相關文章