Pular para o conteúdo
  • Este tópico contém 4 respostas, 4 vozes e foi atualizado pela última vez 18 anos, 6 meses atrás por gustavodesa.
Visualizando 5 posts - 1 até 5 (de 5 do total)
  • Autor
    Posts
  • #80355
    duyamamoto
    Participante

      Como faço para monitorar as consultas feitas por um usuário?
      Usuário, comando sql, tempo de execução e timestamp do login.

      Att
      Eduardo

      #80356
      Marcio68Almeida
      Participante

        Se você quizer monitorar o que está acontecendo no momento :
        Select p.spid, p.addr, s.sid, s.serial#, s.username, s.osuser, s.status, s.server, s.logon_time,
        TO_CHAR (TRUNC (last_call_et / 3600), '009') || ':' ||
        Case When TRUNC (last_call_et / 3600) >= 1 Then
        TO_CHAR (MOD ((last_call_et - (3600 * TRUNC (last_call_et / 3600))) / 3600, 2) * 60, '09')
        Else
        TO_CHAR (MOD (last_call_et / 3600, 2) * 60, '09')
        End inatividade, s.machine, s.program, p.pga_used_mem, p.pga_alloc_mem, p.pga_freeable_mem, pga_max_mem, sql.sql_text
        From v$session s, v$process p, (Select distinct sql_text, address
        From v$sql sql ) sql
        Where s.username is not null
        And status = 'ACTIVE'
        -- And status not in ('SNIPED', 'KILLED')
        And s.paddr = p.addr (+)
        And s.sql_address = sql.address (+)
        Order by s.last_call_et desc

        Se você quer um log de tudo o que está sendo feito no banco, é bom reconsiderar…
        Se você quer fazer um trace de um processo é outra coisa…

        #80358
        duyamamoto
        Participante

          Obrigado pela resposta, mas no caso o que eu preciso é de um log do que o usuário está fazendo no banco.

          #80360
          vieri
          Participante

            alter system set max_dump_file_size = 1000000000;

            Descobrir o ID e o SERIAL# da sessão do usuário através da view de dicionário de dados v$session

            EXEMPLO:
            SELECT sid, serial#, username
            FROM v$session
            WHERE username = ‘VASCODAGAMA’;

            Executar o programa que inicializa o trace, passando o sid e o serial# da sessão do usuário:

            exec sys.dbms_sytem.SET_SQL_TRACE_IN_SESSION
            (SID NUMBER, SERIAL# NUMBER, SQL_TRACE BOOLEAN);

            EXEMPLO:
            exec sys.dbms_sytem.SET_SQL_TRACE_IN_SESSION
            (533, 23456, YES);

            Após o usuário terminar a sessão o programa também é finalizado. Deve-se entrão descobrir o nome do arquivo de trace que foi gerado no diretório UDUMP. Podemos descobrir isso facilmente utilizando o comando ls para listar os arquivos no seguinte formato:

            ls -lrSt

            Pegamos então o nome do arquivo de trace e o passamos em outro programa, gerando um outro arquivo de saída.

            tkprof nomedoarquivodetrace nodoarquivodesaída
            explain = system/senhadousuário sys=no

            EXEMPLO: tkprof VASCODAGAMA_ora.trc trace_psab.txt
            explain = system/xxxxx sys=no

            De nada hein!!

            #80364
            gustavodesa
            Participante

              Você pode utilizar a auditoria do Oracle.

              Basta setar o parâmetro audit_trail para um dos parametros abaixo, e setar a auditoria de DDL emcima de um usuário do banco ou DML de objetos.
              Você pode monitorar sessões (LOGIN E LOGOUT).

              Todos os dados são armazenados na tabela aud$. Possuem várias views para você fazer a consulta, a principal é a DBA_AUDIT_TRAIL.

              1.1) VALORES DO PARÂMETRO AUDIT_TRAIL

              Parameter Value Meaning
              DB ou TRUE Habilita a auditoria do database e direciona todos os registros da auditoria do database para tabela (SYS.AUD$), exceto pra registros que são sempre gravados na auditoria do sistema operacional.

              DB_EXTENDED Habilita a auditoria do database e direciona todos os registros da auditoria do database para tabela (SYS.AUD$).Em adicional, ele inclui as colunas SQLBIND e SQLTEXT na tabela SYS.AUD$.

              OS Habilita a auditoria do database e direciona todos os registros da auditoria para um arquivo do Sistema Operacional que é definida através do parâmetro AUDIT_FILE_DEST.

              NONE ou FALSE Desabilitar a auditoria (Esse valor é o default.)

            Visualizando 5 posts - 1 até 5 (de 5 do total)
            • Você deve fazer login para responder a este tópico.