不允許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)
- 1
- 2
參考:
http://blog.itpub.net/28602568/viewspace-2092858/
http://blog.csdn.net/leshami/article/details/6629141
轉載:
https://blog.csdn.net/hkyw000/article/details/53581121