...
falamos, falamos, e então concluí que a usuaria     ADRIANAV grava na auditoria 
pois a mesma tem acesso na tabela de Horario (que dispara a trigger).. beleza!

Agora só preciso descobrir  pq em algumas circunstancias não gravou!

Muito Obrigada

Cris
  ----- Original Message ----- 
  From: jlchiappa 
  To: oracle_br@yahoogrupos.com.br 
  Sent: Thursday, February 09, 2006 6:50 PM
  Subject: Fw: [oracle_br] Re: duvida de privilegios - a duvida continua


  Uma outra chance : ao invés da questão de privilégios, de repnte PODE
  SER que simplesmente a trigger que faz a auditoria não esteja
  disparando! Uma trigger não dispara se :

  a) for desabilitada via ALTER

  ou 

  b) nem todas as condições forem preenchidas - por exemplo, a condição
  WHEN, se vc tiver uma WHEN SALARIO > 1000 (digamos), ou ainda se a
  trigger especifica as colunas e nenhuma delas foi
  alterada/mexida/citada no SQL. Um caso derivado é simplesmente se
  algum IF do trigger body que autorize o insert na tabela de audit não
  for satisfeito

  ou 

  c) quando se faz SQL em direct path, como por exemplo sqlloader com
  direct=y

  veja lá se algum desses casos nãopode estar acontecendo.

  []s  
     Chiappa
  --- Em oracle_br@yahoogrupos.com.br, "jlchiappa" <[EMAIL PROTECTED]> escreveu
  >
  > >>Chiappa, posso comentar?
  > 
  > mais que pode, DEVE, é pra isso que estamos aqui...
  > 
  > >> -->> Só existem sinonimos públicos no nosso database, 
  > 
  > confirme isso consultando a DBA_SYNONYMs, não acredite no "oficial"
  > 
  > 
  > >> inclusive existe um para
  > a F_AUDITORIA
  > 
  > NÂO deveria haver nenhum !!! Esse objeto de auditoria NÂO é algo 
  > público, que vc queira que qualquer um acesse!!! Ele só deveria ser 
  > acessado PELA TRIGGER de auditoria, que como mostrado SE pertencente 
  > ao mesmo schema dono da tabela, ocorre naturalmente o acesso, veja 
  > que foi EXATAMENTE isso que mostrei no meu exemplo, nem SCOTT nem o 
  > outro cara tinham acesso à tab de auditoria, nem havia sinônimo de 
  > qquer tipo  ....
  > 
  > o usuário PUBLIC não tem privilégio em nenhuma tabela .. nenhuma!
  > 
  > CONFIRME isso consultando em TODAS as fontes possíveis : eu vi na sua 
  > resposta que vc consultou DBA_TAB_PRIVS, DBA_TAB_COLUMNS e 
  > DBA_ROLE_PRIVS, mas não vi consulta nem na role_role_privs nem 
  > recursiva na DBA_ROLE_PRIVS, e também não vi menção à SYS_PRIVS (pro 
  > caso de alguém ter recebido SELECT ANY TABLE) , um script mais 
  > completo seria :
  > 
  > /* PRIVS_BY_USER */
  > set echo off
  > set verify off
  > set pages 200
  > col granted_role form a20
  > col owner form a15
  > col table_name form a33
  > col privilege form a33
  > ACCEPT username  prompt 'Enter Username : '
  > PROMPT Roles granted to user
  > SELECT granted_role,admin_option,default_role
  > FROM dba_role_privs
  > WHERE grantee=UPPER('&username')
  > ORDER BY 1;
  > PROMPT Table Privileges granted to a user through roles
  > SELECT granted_role, owner, table_name, privilege
  > FROM ( SELECT granted_role
  >     FROM dba_role_privs WHERE grantee=UPPER('&username')
  >        UNION
  >        SELECT granted_role
  >     FROM role_role_privs
  >     WHERE role in (SELECT granted_role
  >              FROM dba_role_privs WHERE grantee=UPPER('&username')
  >             )
  >    ) roles, dba_tab_privs
  > WHERE granted_role=grantee
  > ORder by 1,2,3,4;
  > PROMPT System Privileges assigned to a user through roles
  > SELECT granted_role, privilege
  > FROM ( SELECT granted_role
  >     FROM dba_role_privs WHERE grantee=UPPER('&username')
  >        UNION
  >        SELECT granted_role
  >     FROM role_role_privs
  >     WHERE role in (SELECT granted_role
  >              FROM dba_role_privs WHERE grantee=UPPER('&username')
  >             )
  >    ) roles, dba_sys_privs
  > WHERE granted_role=grantee
  >  ORDER BY 1,2;
  > PROMPT Table privileges assigned directly to a user
  > SELECT owner, table_name, privilege
  > FROM dba_tab_privs
  > WHERE grantee=UPPER('&username')
  > ORDER BY 1,2,3;
  > PROMPT System privileges assigned directly to a user
  > SELECT privilege, admin_option
  > FROM  dba_sys_privs
  > WHERE grantee=UPPER('&username');
  > 
  > e vc rodaria este script contra PUBLIC, contra o usuário dono das 
  > tabs, e contra o usuário final,o tal do user1 aí.
  > 
  > ==> e outra coisa, tenha CERTEZA que a aplicação não faz muda isso 
  > dinamicamente (via ALTER SESSION, ou SQL dinâmico), e que não há 
  > triggers de banco (tipo triggers de logon, ou similares) envolvidas.
  > 
  > >> -->> Tudo indica que estava faltando acesso, então é normal o dbms 
  > tem horas
  > que deixa gravar, e horas que não grava?
  > 
  > não, OU vc tem o acesso ou não tem, não existe isso de hora gravar 
  > ora não
  > 
  > >> Bom ela nao tem acesso na F_AUDITORIA, mas como ela ja gravou isso
  > HJ?
  > 
  > é o que eu te mostrei no exemplo, SE há uma trigger pertencente ao 
  > MESMO dono da tabela, e se é feito GRANT de DML dessa tabela , a 
  > trigger será executada automaticamente, e como a trigger PERTENCE ao 
  > mesmo usuário-dono, ela será executada com as permissões desse 
  > usuário-dono, a tabela de auditoria será normalmente gravada pela 
  > trigger, pois a trigger tem o acesso nesse caso... 
  > 
  > >>> b) dispara na MESMA transação, então se o cliente fizer um 
  > ROLLBACK
  > (seja rollback automático por erro, seja de propósito),o INSERT na
  > tabela de AUDIT *** vai *** ser desfeito.... Pra isto, AUTONOMOUS
  > TRANSACTION é a solução.
  > -->> Ué mas não tem de ser desfeito mesmo? se foi feito o rollback na 
  > inserção
  > da tabela de horario, não tem de "sair" da tabela de auditoria? 
  > entendi
  > errado????
  > 
  > é que eu estava pensando na seguinte hipótese : imagine que o usuário 
  > fez uma operação que deu erro, ou então saiu da aplicação sem gravar, 
  > e (erradamente!) a aplicação não mostra nada pra ele : nesse caso a 
  > transação vai ser desfeita, e o insert na tabela de auditoria vai 
  > sumir também, aí lá vem o usuário reclamando que não houve 
  > auditoria.... Pra vc comprovar que é isso, vc pode (por exemplo) ter 
  > uma trigger que registra os erros da base (evento on servererror), 
  > e/ou ainda ter uma transação autônoma na trigger de auditoria, OU 
  > ainda melhor, acionar o comando AUDIT nesse banco, que aí não tem 
  > como, afora acessos de DBAs audit NECESSARIAMENTE captura o que vc 
  > especificar.
  > 
  > afaik é checar essas possibilidades, só assim vc vai descobrir o que 
  > está diferente nesse banco. 
  > 
  > []s
  > 
  >  Chiappa
  >







  
--------------------------------------------------------------------------------------------------------------------------
  Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
  Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
  
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________
  Moderador e Fundador: Dorian Anderson Soutto [EMAIL PROTECTED]
  __________________________________________________________________ 


        Yahoo! Grupos, um serviço oferecido por: 
              PUBLICIDADE
                
       


------------------------------------------------------------------------------
  Links do Yahoo! Grupos

    a.. Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/
      
    b.. Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]
      
    c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço 
do Yahoo!. 



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



--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________
Moderador e Fundador: Dorian Anderson Soutto [EMAIL PROTECTED]
__________________________________________________________________ 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a