В дополнение к парольной защите, многие предприятия практикуют ограничение подключений к серверу Oracle по IP адресу, т.е. разрешая подключаться клиентам с определенными IP адресами. При подключении клиента, Oracle получает IP адрес входящего соединения и сравнивает его с IP адресами хранящимися в таблице, содержащей все авторизованные адреса.
Для построения такой проверки, используется команда USERENV:
SELECT SYS_CONTEXT('USERENV','IP_ADDRESS')
FROM DUAL; 
Создаем таблицу для записи доступной информации о подключении и IP адресов:
CONNECT SYS/MANAGER;
CREATE TABLE STATS$USER_LOG
  (
    USER_ID VARCHAR2(30),
    SESSION_ID NUMBER(8),
    HOST VARCHAR2(30),
    IP_ADDRESS VARCHAR2(30)
  ); 
Далее создается триггер на системном уровне, который будет записывать доступную информацию о подключении:
CREATE OR REPLACE TRIGGER
   LOGON_AUDIT_TRIGGER
AFTER LOGON ON DATABASE
BEGIN
INSERT INTO STATS$USER_LOG VALUES(
   USER,
   SYS_CONTEXT('USERENV','SESSIONID'),
   SYS_CONTEXT('USERENV','HOST'),
   SYS_CONTEXT('USERENV','IP_ADDRESS')
);
END;