Mostrando postagens com marcador Como descobrir quem está conectando em seu banco Oracle. Mostrar todas as postagens
Mostrando postagens com marcador Como descobrir quem está conectando em seu banco Oracle. Mostrar todas as postagens

quarta-feira, 28 de dezembro de 2016

Como descobrir quem está conectando em seu banco Oracle?

Hoje venho abordar um problema do dia a dia de um DBA. Imagine a situação em que o DBA recebe um chamado de dar unlock em um usuário, poucos minutos depois recebe mais um, e depois outro e etc… Em sistemas é comum a configuração de um mesmo schema em diversos lugares. Agora uma provável alteração de senha pode gerar uma dor de cabeça do tamanho de um AT-AT. 



Como podemos entender qual sistema que está tentando acessar o banco com a senha errada? 

Com o problema descrito, escrevi um código baseado no DBA_AUDIT_SESSION para obter informações do usuário do sistema operacional, usuário do banco, dia e hora da tentativa de acesso e host que está tentando acessar o schema e database. No Código abaixo é possível customizar o username e hora em que é necessário realizar tal pesquisa.

------------------------------------------------------------------------------------------------------------
select 
  os_username, 
  username, 
  to_char(timestamp, 'dd-mm-yyyy hh24:mi:ss'), 
  userhost 
from dba_audit_session
where 
  returncode<>0
  AND (to_char(timestamp, 'dd-mm-yyyy hh24:mi:ss') between '28-12-2016 09:47:00' and '28-12-2016 10:00:00’)
  AND username='nome_do_schema'
order by to_char(timestamp, 'dd-mm-yyyy hh24:mi:ss') desc;
------------------------------------------------------------------------------------------------------------

Agora que a curiosidade de resolver o problema foi saciada, aproveito para explicar o que raios é DBA_AUDIT_SESSION. Para facilitar a vida, cito aqui a definição de auditoria pelo blog http://www.profissionaloracle.com.br/gpo/servicos/easyblog/entry/2009/09/27/auditoria-no-oracle-10g: “Auditoria é a habilidade do banco de dados Oracle poder gerar logs de auditoria (XML, tabelas, arquivos de SO, …) em atividades suspeitas do usuário, como por exemplo: monitorar o que um determinado usuário está fazendo ou até mesmo saber para qual valor a coluna de salário da tabela empregados está sendo atualizadas. Com a auditoria, esses dados são facilmente capturados e guardados para posteriormente serem analisados.”

DBA_AUDIT_SESSION disponibiliza todo os rastros de dados ligados a CONNECT e DISCONNECT.

Obrigado pela atenção mais uma vez.

Lucas Rehem de Azevedo

Links  utilizados nesse post: