-- Start of DDL Script for Trigger SYS.AFTER_LOGON_BD
-- Generated 25-nov-2010 15:07:59 from SYS@vs08
DROP TRIGGER after_logon_bd;
CREATE OR REPLACE TRIGGER after_logon_bd
AFTER
LOGON
ON DATABASE
DECLARE
v_session sys.GV$SESSION%rowtype;
--instance sys.v$instance.instance_name%type;
BEGIN
-- select sys_context('USERENV','IP_ADDRESS') into ip from dual;
--
--instance := userenv('instance');
--
select * into v_session from gv$session where sid = userenv('sid') and inst_id = userenv('instance');
--select * into v_session from gv$session where audsid = userenv('SESSIONID') and OSUSER= SYS_CONTEXT('USERENV','OS_USER');
--
--raise_application_error('-20000',v_session.username||' '||v_session.inst_id);
-- Verifica se o usuário de banco tem acesso
IF (UPPER(v_session.username) NOT IN ('SYSTEM','SYS','ADMIN','DWADMIN','DBSNMP','SYSMAN')) then
-- Verifica se o usuário de Sistema Operacional tem acesso - Funcionário com perfil de DBA/AD/DW
If UPPER(v_session.osuser) NOT IN ('MARCO.LIMA','GABRIELA.MARQUES','YURI.ADAME', -- DBA
'ANDERSON.RIBEIRO','DEIVISON.MUNIZ','JAQUELINE.GISMONTI','GUSTAVO.SILVA','ALINE.MAGALHAES','CHRISTIANO.MATOS','NATANAEL.LEITE') then
-- Trava de usuário com problema
if UPPER(v_session.username) in ('CONSULTA_DBSVS_WEB') then
null;
--Verifica se as conexões são provenientes dos servidores ANVSSDFxx
elsif (upper(v_session.machine) like '%ANVSSDF%') then
null;
elsif (upper(v_session.terminal) like '%ANVSSDF%') then
null;
--Verifica se as conexões são provenientes dos servidores WWW1.ANVISA.GOV.BR
elsif (upper(v_session.machine) like '%WWW1.ANVISA.GOV.BR%') then
null;
elsif (upper(v_session.terminal) like '%WWW1.ANVISA.GOV.BR%') then
null;
--Libera o acesso temporário de migração
elsif (upper(v_session.machine) like '%WWW1N%') then
null;
-- --Libera o acesso da máquina an041387 da usuaria Carolina.Pigret e da maquina AN042791 do Ricardo.Borges
-- elsif (upper(v_session.terminal) in ('AN041387','AN042791','AN057032','AN041386')) and UPPER(v_session.osuser) IN ('CAROLINA.PINGRET','RICARDO.BORGES','MARCELO.ANGELO','FABIO.ALMEIDA') and upper(v_session.username) = 'CONSULTA_DBSVS' then
-- null;
--Libera o acesso para os usuários MARCELO_ANGELO,NADIR_OGLIARI com conexão dedicada
elsif UPPER(v_session.osuser) in ('MARCELO_ANGELO','NADIR_OGLIARI') and (upper(v_session.server) = 'DEDICATED') then
null;
elsif (upper(v_session.program) in ('JDBC THIN CLIENT')) and UPPER(v_session.username) IN ('ETIQUETA_WEB') then
null;
--###############################################################
--Libera o acesso da máquina gbt-02 Alessandro Mirante temporario
--elsif v_session.machine in ('gbt-02.local') and UPPER(v_session.username) IN ('CONS_EXTERNA') then
-- null;
--################################################################
-- Acesso para o setor de Arrecadação do sistema SAT
elsif UPPER(v_session.osuser) in ('FREDERICO.FERNANDES','JULIANA.QUARTIN','JORGE.NASCIMENTO') and (upper(v_session.username) = 'CADEMPRESA_WEB') then
null;
-- Libera o acesso para o usuário de banco CONS_PPS_DATAVISA
elsif UPPER(v_session.osuser) in ('STELA.MELCHIOR','MARIA.VICENTE','CARLA.CRUZ','GUILHERME.BUSS','CARLOS.FORNAZIER','MARIO.CHAVES')
and (upper(v_session.username) = 'CONS_PPS_DATAVISA') then
null;
--Acesso para Sammed
elsif (upper(v_session.username) = 'SAMMED_WEB') then
null;
-- Acesso para a GGREM
elsif UPPER(v_session.osuser) in ('ALESANDRE.SANTOS') and (upper(v_session.username) = 'MON_WEB') then
null;
--Libera o acesso da máquina AN0431 para o acesso do CSS com ousuário CSS_DATAVISA
elsif upper(v_session.terminal) = 'AN0431' and UPPER(v_session.username) = 'CSS_DATAVISA' then
null;
--Verifica se as conexões são proveniente de um APLICATIVO autorizado
elsif upper(v_session.program) in ('AGENDATEL.EXE','BAIXABBARRECADACAO.EXE','CODIVA_VS01.EXE','DIVA_VS01.EXE','FINANCEIROSIPAD.EXE',
'INETINFO.EXE','ESTATPAFSEG.EXE','MONITORAMENTO.EXE','PRJ_INTERFACE_DBMON.EXE',
'PDARF.EXE','UNICA.EXE','SNGPC.EXE','SIPAT.EXE') then
null;
--Elimina as conexões de usuários de SO desconhecidos
elsif v_session.osuser is null then
begin
execute immediate 'ALTER SYSTEM KILL SESSION '||''''||v_session.sid||','||v_session.serial#||',@'||v_session.inst_id||''';';
EXCEPTION
when others then
insert into admin.tb_after_logon values (v_session.OSUSER, v_session.PROGRAM, v_session.username, v_session.machine, v_session.terminal, v_session.logon_time,'Login-Anvisa-1.0');
commit;
raise_application_error('-20000','Acesso negado - 1.0!');
end;
--Elimina as conexões dos usuário DB*
elsif (UPPER(v_session.username) like 'DB%') or (UPPER(v_session.username) in ('AD')) then
begin
execute immediate 'ALTER SYSTEM KILL SESSION '||''''||v_session.sid||','||v_session.serial#||',@'||v_session.inst_id||''';';
EXCEPTION
when others then
insert into admin.tb_after_logon values (v_session.OSUSER, v_session.PROGRAM, v_session.username, v_session.machine, v_session.terminal, v_session.logon_time,'Login-Anvisa-1.1');
commit;
raise_application_error('-20000','Acesso negado - 1.1!');
end;
--Elimina as conexões não autorizadas
else
If (UPPER(v_session.osuser) NOT IN (
/* ANALISTA DE SISTEMAS - ANVISA */
'CARLOS.GONCALVES','DANIELLE.MACIEL','EWERTON.MARTINS','HONORIO.MARQUES','PEDRO.ALMEIDA',
'PAULO.CESAR','NELCI.SANTOS','ORACLE','VERANGGE.LOPES','JORGE.CARVALHO',
--/*ANALISTAS DA UNIMIX*/
/* ANALISTA DE SISTEMAS - MIRANTE */
'ADEMIR.JUNIOR','ALEXANDRE.MAXIMO','BRUNO.AMORIM','DIONE.OLIVEIRA','ROGERIO.MIARI','GLADSON.LIMA','MARCELO.RODRIGUES','WESLEY.MARINHO', 'ROBERTO.LUIZ','DARLAN.LISBOA','ERIC.SILVA','HELCIO.GONCALVES','RUZBEH.SHOKRANIAN','VICTOR.LUIZ','BRUNO.SANTOS','DIOGO.CORAZOLLA','PEDRO.ALMEIDA',
'RENATO.VALE','DIVINO.JUNIOR','ULISSES.SOARES','LEO.MARRA','LEONARDO.OSOUZA','JOAO.CHAGAS','BRUNO.BEHMOIRAS','WALLACE.SANTOS','DAYSE.MAGALHAES','LAZARO.FREITAS','CLAUDIO.DASILVA','ALESSANDRO.LEITE','WILSON.BRITO','DAVID.PEREIRA','RAIMUNDA.CIRILO','HOSANA.MACHADO','FRANCISCO.ADEMILSON'
/* DIVERSOS */)) then
begin
execute immediate 'ALTER SYSTEM KILL SESSION '||''''||v_session.sid||','||v_session.serial#||',@'||v_session.inst_id||''';';
EXCEPTION
when others then
insert into admin.tb_after_logon values (v_session.OSUSER, v_session.PROGRAM, v_session.username, v_session.machine, v_session.terminal, v_session.logon_time,'Login-Anvisa-1.2');
commit;
--admin.send_mail('ORACLE','dba@anvisa.gov.br',instance||' - '||to_char(sysdate,'dd/mm/yyyy hh24:mi:ss')||' Login-Anvisa-1.1','Login: '||v_session.OSUSER||chr(13)||'Program: '||v_session.PROGRAM||chr(13)||'User DB: '||v_session.username||chr(13)||'Máquina: '||v_session.machine||chr(13)||'Máquina: '||v_session.terminal);
raise_application_error('-20000','Acesso negado! Favor entrar em contato com a GESIS para maiores informações. Ramal: 1133.');
end;
end if;
end if;
End if;
END IF;
END;
/
-- End of DDL Script for Trigger SYS.AFTER_LOGON_BD