DBA_USERS 11g NULL password

Muitos de nós já tivemos que copiar alguma senha um user para outro ambiente por fazer uma migração e etc.

No Oracle 11g a coluna password da visão dba_users vem vazia mesmo para os SYS e SYSTEM.   Então aqui vai uma solução prática para “roubar” a senha do banco (O dba não sabe a senha do user, somente a string criptografada que corresponde a senha):

1) Logue-se com um usuário privilegiado (SYSTEM ou SYS por exemplo)

[/home/oracle]$ sqlplus “/as sysdba”

SQL*Plus: Release 11.2.0.2.0 Production on Thu Apr 28 11:14:27 2011

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 – 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL>

2) Criamos um usuário com uma senha qualquer:

SQL> create user MUFALANI identified by MUFALANI;

User created.

SQL>

3) Conceder privilegio para iniciar uma sessão com o banco:

SQL> grant create session to MUFALANI;

Grant succeeded.

SQL>

4) Consulte a visão DBA_USERS para ver a senha criptografada desse user:

SQL> select username,password from dba_users where username=’MUFALANI’;

USERNAME                       PASSWORD
—————————— ——————————
MUFALANI

SQL>

Ops…. Não aparece nada na coluna PASSWORD, mesmo para o SYS, como posso usar nosso aliado “alter user identified by values”???

SQL> show user;
USER is “SYS”

Simples!!!

5) Faça uma consulta na tabela base SYS.USER$:

SQL> select name,password from sys.user$ where name=’MUFALANI’;

NAME                           PASSWORD
—————————— ——————————
MUFALANI                       97E6219FEAE350A2

SQL>

Com isso pegamos a senha criptografada para o usuário MUFALANI.

6) Para ilustar melhor iremos alterar a senha para um valor qualquer:

SQL> alter user mufalani identified by abc123;

User altered.

SQL>

7) Vamos nos conectar no banco de dados com essa nova senha:

SQL> conn mufalani/abc123
Connected.
SQL> sho user;
USER is “MUFALANI”
SQL>

8) Agora iremos restaurar a senha do usuário para a senha original que pegamos no passo “5”

SQL> alter user mufalani identified by values ’97E6219FEAE350A2′;

User altered.

SQL>

9) Agora vamos conectar com o usuário para ver se funcionou:

SQL> conn mufalani/MUFALANI
Connected.
SQL> sho user;
USER is “MUFALANI”
SQL>

Bingo!!! Funciona… como funcionava em versões anteriores ao Oracle 11g.

Att,

Rodrigo Mufalani

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios são marcados com *