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:


terça-feira, 6 de dezembro de 2016

Migrar informações de Conexão do ODI

Bom dia a todos,

Esse post tem como intuito apenas de mostrar como migrar aquelas suas conexões que você nem lembra mais a senha, para um outro client do ODI.


Para isso é necessário migrar o arquivo snps_login_work.xml. Esse arquivo contém o acesso da conexão do ODI criptografado, basta adicionar esse arquivo no seguinte caminho:

C:\Users\nome_do_usuario\AppData\Roaming\odi\oracledi\

Caso o já tenha um outro arquivo como esse, sugiro que faça um backup.

Após adicionado o arquivo no local, feche e abra o client do ODI.