ha ha ha..com certeza foi..ha ha ha O velho mardito ()..rs
Valeu..abração --- Em oracle_br@yahoogrupos.com.br, Fábio Gibon - Comex System <gi...@...> escreveu > > Não está faltando uns parenteses neste teu IF (... and ( or or or )) ? > > sds > Gibon > ----- Original Message ----- > From: candiurudba > To: oracle_br@yahoogrupos.com.br > Sent: Tuesday, May 19, 2009 4:26 PM > Subject: [oracle_br] Re: Trigger para bloqueio de Acesso com PL/SQL ou SQL > PLUS > > > > > > 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, Fábio Gibon - Comex System <gibon@> > 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 > > 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 [mailto:oracle...@yahoogrupos.com.br] Em > > nome de candiurudba > > Enviada em: terça-feira, 19 de maio de 2009 11:16 > > Para: oracle_br@yahoogrupos.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 > <mailto:oracle_br%40yahoogrupos.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 > > <mailto:oracle_br%40yahoogrupos.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] > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] >