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]