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" <candiuru...@...> 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]

Responder a