Oracle數據庫限定特定用戶 特定IP 登錄

不允許test用戶在 192.168.1.3 機器上訪問數據庫。
兩種寫法。

1

CREATE OR REPLACE TRIGGER DOPR  
    AFTER LOGON ON test.schema 
BEGIN                                                                      
   IF ORA_CLIENT_IP_ADDRESS IN ('192.168.1.3') THEN    
   RAISE_APPLICATION_ERROR(-20001,'USER '||ORA_LOGIN_USER||' IS NOT ALLOWED TO CONNECT FROM '||ORA_CLIENT_IP_ADDRESS);
   END IF;
END;

2.

    CREATE OR REPLACE TRIGGER dopr                                      
        AFTER logon ON test.schema         
    DECLARE                                                                     
        ipaddr VARCHAR2(30);                                                      
    BEGIN                                                                       
        SELECT sys_context('userenv', 'ip_address')                               
        INTO   ipaddr                                                             
        FROM   dual;                                                              
        IF ipaddr = '192.168.1.3' THEN                                           
            raise_application_error('-20001',                                       
                        'You can not login,Please contact administrator');                
        END IF;                                                                   
    END dopr;                                                           
    /   

這裏說下ORA_CLIENT_IP_ADDRESS 這個函數,直接調用是空的。
這個函數只在系統觸發器中有用,在DDL 無效。
http://blog.csdn.net/edcvf3/article/details/8987335

在sqlnet.ora 可以限制IP

tcp.validnode_checking=yes  
tcp.excluded_nodes=(192.168.1.3)

參考:
http://blog.itpub.net/28602568/viewspace-2092858/
http://blog.csdn.net/leshami/article/details/6629141

發佈了75 篇原創文章 · 獲贊 15 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章