Índice do fórum Treinamentos Básicos Treinamento DBA Júnior Mini auditoria

Mini auditoria

Dúvidas, dicas e atualizações sobre o Treinamento DBA Júnior.

Mensagem Seg Nov 16, 2015 2:25 pm

Mensagens: 0
Portilho,

Estou querendo criar uma "auditoria" do sqlplus de um servidor. A intenção é seguinte:
Sempre que um DBA chamar um alias (s, sql, etc) eu crio um log de tudo o que ele fizer:

#Alias
alias s='rlwrap sqlplus "/ as sysdba"' >> /home/oracle/.audit/sqlplus/sqlplus_$(date +%d_%m_%Y_%H_%M_%S).log

Porém, esse cara não está funcionando, sempre que eu o chamo ele fica com a sessão do sqlplus presa e não retorna o prompt para o DBA.
Se eu altero as aspas simples do alias para o final do comando ele retorna o prompt para o DBA, mas não cria o arquivo.

Existe alguma forma de criar isso?
Eu pensei em usar um spool para toda sessão que logar como DBA, mas se o user abrir outro spool ele mata o meu spool inicial, pois não é possível criar vários spools aninhados...

Alguma ideia?

Mensagem Qua Nov 18, 2015 4:11 pm
portilho Site Admin

Mensagens: 463
Você pode colocar no glogin.sql para ser criado um SPOOL, com o SID e SERIAL# no nome do arquivo.

set termout off
define new_prompt='nolog'
column new_prompt new_value new_prompt
select 'SQL('||t.username||'@'||global_name||','||'sid='||sid||',serial#='||serial#||')' new_prompt
from v$session,user_users t, global_name where AUDSID = USERENV('SESSIONID');
set sqlprompt "&new_prompt>"
set termout on
SPOOL "/home/oracle/&new_prompt>"


Voltar para Treinamento DBA Júnior

cron