Viva, cá está mais uma maneira de bloquear user's de acederem a ambientes de PRD e acederem a réplicas/clones (DataGards). Geralmente estes diferenciados tem de existir em todos ambientes. Então uma forma é criar uma um trigger para esse user ...
CREATE OR REPLACE TRIGGER SYS.NOME_DO_TRIGGER
after LOGON on USER_A_BLOQUEAR.schema
DECLARE
l_sid NUMBER(09);
l_serial NUMBER(09);
p_error VARCHAR2(20);
w_ora_login VARCHAR2(30);
w_type VARCHAR2(10);
w_os_login VARCHAR2(30);
w_count NUMBER(02);
l_audsid NUMBER(09);
l_machine VARCHAR2(150);
l_terminal VARCHAR2(100);
w_program VARCHAR2(100);
l_module VARCHAR2(100);
l_logon_time date;
l_username VARCHAR2(100);
v_host VARCHAR2(100);
BEGIN
SELECT UPPER(NVL(username,schemaname)), UPPER(TYPE), UPPER(osuser), program, machine, module, logon_time, username
INTO w_ora_login, w_type, w_os_login, w_program ,l_machine, l_module, l_logon_time ,l_username FROM V$SESSION
WHERE sid IN
(SELECT DISTINCT(sid) FROM v$mystat);
SELECT host_name into v_host FROM V$instance;
IF lower(v_host) !='nome_host_onde_pode_aceder' THEN
insert into owner.nome_tabela_gestao_acessos (osuser,userbd,application,module,from_m, login_date)
values (w_os_login, w_ora_login, w_program, l_module , l_machine , l_logon_time );
commit;
RAISE_APPLICATION_ERROR (-20002, 'User apenas da REPLICA_XPTO - : Acesso nao autorizado do user ' || w_ora_login || '/' || w_os_login || ' com o programa: '|| w_program);
END IF;
END;
/