Amigo, pelo que entendi no teu if, ele está validando v_username = 'TESTE' E
UPPER(v_module) = 'PLSQLDEV.EXE') e as demais comparações são baseadas em
OU. É isso mesmo? Se vc quer testar o usuário TESTE, usando uma lista de
programas, vc poderia alterar teu if para o trecho abaixo (só que utilizei
mais parenteses para "isolar" a validação do sistema). Acho que com isso o
usuário TESTE_SELECT volta a funcionar

IF ( v_username = 'TESTE' AND (UPPER(v_module) = 'PLSQLDEV.EXE' OR
UPPER(v_module) LIKE '%TOAD%' OR -- TOAD
UPPER(v_module) = 'PL/SQL Developer' OR -- PL / SQL DEVELOPER
UPPER(v_module) LIKE '%SQLNAV%' OR -- SQL NAVIGATOR
UPPER(v_module) LIKE '%SQLPLUS%' OR --SQL PLUS
UPPER(v_module) LIKE '%DEVELOPER%')) THEN

Não sei se é isto o que vc deseja. Espero ter ajudado

Jairo
2009/5/19 candiurudba <candiuru...@yahoo.com.br>

>
>
> Opa pessoal...
>
> Implementei um script de logon, que não permite o acesso dos DEVELOPER´S da
> vida e funcionou...mas so tem um problema...tenho um usuário chamado TESTE E
> UM CHAMADO TESTE_SELECT...O ESTE ÚLTIMO parou de funcionar quando
> implementei a trigger quando tento acessar Oracle sql developer mas via
> pl/sql developer, ele funciona sem problemas...não entendi nada...
>
> A parte da minha trigger que trata isso é:
>
> IF (v_username = 'TESTE' AND UPPER(v_module) = 'PLSQLDEV.EXE' OR
> UPPER(v_module) LIKE '%TOAD%' OR -- TOAD
> UPPER(v_module) = 'PL/SQL Developer' OR -- PL / SQL DEVELOPER
> UPPER(v_module) LIKE '%SQLNAV%' OR -- SQL NAVIGATOR
> UPPER(v_module) LIKE '%SQLPLUS%' OR --SQL PLUS
> UPPER(v_module) LIKE '%DEVELOPER%') THEN
>
> Pensei que ambos (ORACLE SQL DEVELOPER e o PL/SQL) interpretassem da mesma
> forma as conexões, pois são usuários distintos, com seus sid e serial#
> distintos...alguem tem alguma luz ?
>
> --- Em oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>,
> Fábio Gibon - Comex System <gi...@...> escreveu
>
> >
> > Complementando... para ter um pouquinho mais de restrição use a coluna
> MODULE e não PROGRAM... evita o renomear do .exe.
> >
> > sds
> > Gibon
> > ----- Original Message -----
> > From: Marcus Vinicius Miguel Pedro
> > To: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>
> > Sent: Tuesday, May 19, 2009 11:31 AM
> > Subject: RES: [oracle_br] Re: Trigger para bloqueio de Acesso com PL/SQL
> ou SQL PLUS
> >
> >
> >
> >
> >
> > Amigo, acredito que o que você cita seja isso aqui:
> >
> > CREATE OR REPLACE TRIGGER SYS.BLOCK_USER_TOOLS AFTER LOGON ON DATABASE
> >
> > DECLARE
> >
> > v_prog sys.v_$session.program%TYPE;
> >
> > owner sys.v_$session.username%TYPE;
> >
> > v_osuser sys.v_$session.osuser%TYPE;
> >
> > BEGIN
> >
> > SELECT program, username, osuser
> >
> > INTO v_prog, owner, v_osuser
> >
> > FROM sys.v_$session
> >
> > WHERE sid = USERENV('SID')
> >
> > AND audsid != 0 -- Não verifica conexões do SYS
> >
> > AND rownum = 1; -- Parallel processes will have the same AUDSID's
> >
> > IF UPPER(owner) NOT IN
> >
> ('ANONYMOUS','AURORA$JIS$UTILITY$','AURORA$ORB$UNAUTHENTICATED','DBSNMP','DI
> >
> P','DMSYS','EXFSYS','LMS','MDDATA','MDSYS','MGMT_VIEW','OPERADOR','ORDPLUGIN
> >
> S','ORDSYS','OSE$HTTP$ADMIN','OUTLN','SI_INFORMTN_SCHEMA',,'SYS','SYSMAN','S
> > YSTEM','TRACESVR','TSMSYS','WKPROXY','WMSYS','XDB')
> >
> > THEN
> >
> > IF (UPPER(v_prog) LIKE '%TOAD%' OR
> >
> > UPPER(v_prog) LIKE '%T.O.A.D%' OR -- Toad
> >
> > UPPER(v_prog) LIKE '%SQLNAV%' OR -- SQL Navigator
> >
> > UPPER(v_prog) LIKE '%PLSQLDEV%' OR -- PLSQL Developer
> >
> > UPPER(v_prog) LIKE '%BUSOBJ%' OR -- Business Objects
> >
> > UPPER(v_prog) LIKE '%EXCEL%' OR -- MS-Excel plug-in
> >
> > UPPER(v_prog) LIKE '%SQLPLUS%' OR -- SQLPLUS
> >
> > UPPER(v_prog) LIKE '%DEVELOPER%' OR -- Oracle SQL Developer
> >
> > UPPER(v_prog) LIKE '%IFBLD%' OR -- Oracle Forms Developer
> > Builder
> >
> > UPPER(v_prog) LIKE '%FRMBLD%' OR -- Oracle Forms Developer
> > Builder
> >
> > UPPER(v_prog) LIKE '%RAPTOR%') -- Oracle Raptor
> >
> > THEN
> >
> > RAISE_APPLICATION_ERROR(-20000, 'A ferramenta de acesso não é
> > permitida para este usuário! ('||v_osuser||' - '||owner||' -
> > '||v_prog||')');
> >
> > END IF;
> >
> > END IF;
> >
> > EXCEPTION
> >
> > WHEN NO_DATA_FOUND THEN NULL;
> >
> > END;
> >
> > /
> >
> > Lembrando que não existe forma 100% efetiva de bloquear nesses casos. Se
> o
> > usuário renomear o arquivo executável, ele conseguirá acessar o banco de
> > dados...
> >
> > Abraços,
> >
> > Marcus Vinicius Miguel Pedro
> >
> > OCP Database 9i
> >
> > OCP Database 10g
> >
> > OCE RAC 10g
> >
> > De: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>[mailto:
> oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>] Em
> > nome de candiurudba
> > Enviada em: terça-feira, 19 de maio de 2009 11:16
> > Para: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>
> > Assunto: [oracle_br] Re: Trigger para bloqueio de Acesso com PL/SQL ou
> SQL
> > PLUS
> >
> > fiz alguns testes por aqui e realmente funciona...mas para tada
> > instancia...s eue quiser restringir esta trigger somente para alguns
> > schemas...pois este é o meu problema...
> >
> > Na minha instancia, existem alguns schemas que permitem o uso dos
> > DEVELOPER´S e outros esquemas não.
> >
> > continuarei estudando por aqui mas se algum tiver mais alguma
> > luz..agradeceria..
> >
> > --- Em oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br><mailto:
> oracle_br%40yahoogrupos.com.br <oracle_br%2540yahoogrupos.com.br>>
> > , "candiurudba" <candiurudba@> escreveu
> > >
> > > dei uma olhadinha e estav show de bola...acho que é isto mesmo..
> > >
> > > só uma dúvida, ela é para ser implementada no usuário especifico ou no
> > Sys..fiquei na dúvida devido o select que esta sendo feito na v_$mystat
> que
> > só é acessada por este cara...
> > >
> > > --- Em oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>
> > <mailto:oracle_br%40yahoogrupos.com.br<oracle_br%2540yahoogrupos.com.br>>
> , Duilio Bruniera Junior <bruniera@>
> > escreveu
> > > >
> > > > E ai brow .....
> > > > não sei se essa é a mesma trigger que voce ta falando , mais acho que
> > pode
> > > > resolver o seu problema da uma olhada.
> > > > <begin>----------------------------------------------------------
> > > > create or replace trigger on_logon
> > > > after logon on database
> > > > declare
> > > > v_sid number;
> > > > v_isdba varchar2(10);
> > > > v_program varchar2(30);
> > > > begin
> > > > execute immediate 'select distinct sid from sys.v_$mystat'
> > > > into v_sid;
> > > > execute immediate 'select program from sys.v_$session where sid =
> :b1'
> > > > into v_program
> > > > using v_sid;
> > > > select sys_context('userenv', 'ISDBA') into v_isdba from dual;
> > > > if upper(v_program) = 'PLSQLDEV.EXE' and v_isdba = 'FALSE' then -- o
> > > > nome do programa tem que ser em maiusculo.
> > > > raise_application_error(-20001,'A Ferramenta PL/SQL Developer é
> limitada
> > > > apenas aos DBA'||chr(39)||'s',true);
> > > > end if;
> > > > end;
> > > > /
> > > > <end>----------------------------------------------------------
> > > >
> > > > 2009/5/19 candiurudba <candiurudba@>
> > > >
> > > > >
> > > > >
> > > > > Bom dia coelgas, tudo bom ?
> > > > >
> > > > > Vi ha algum tempo atras em um forum, uma trigger que bloqueava
> acessos
> > de
> > > > > usuário que estivessem se conectando com SQL PLUS ou PLSQL DEVELOPR
> > por
> > > > > exemplo mas não me recordo com a mesma tinha sido desenvolvida...
> > > > >
> > > > > A ideia era bloquear acessos a determinados esquemas com a
> utilização
> > de
> > > > > aplicação de desenvolvimento (SQL PLUS, PL/SQL DEVELOPER. ORACLE
> SQL
> > > > > SEVELOPER, TOAD E ETC).
> > > > >
> > > > > Minha ideia seria uma trigger que seria aplicada em um determinado
> > usuário
> > > > > e, após o logon do mesmo, estes aplicativos fossem bloqueados.
> > > > >
> > > > > Alguem teria alguma luz sobre este assunto ? è justamente para
> evitar
> > > > > acessos indesejados na base de dados...
> > > > >
> > > > > abraços
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>
>  
>



-- 
Jairo Azevedo
jsouza...@gmail.com
protheus...@yahoo.com.br
(21) 8888-6492


[As partes desta mensagem que não continham texto foram removidas]

Responder a