Ticker

6/recent/ticker-posts

Recuperar senha no Oracle 11g

Esta técnica pode ser bastante útil em várias situações nas quais precisamos acessar um determinado usuário que onde não temos conhecimento da senha e também não podemos realizar a alteração da mesma. Por exemplo:
  • O colaborador saiu de ferias e somente o seu usuário tem permissão para realizar determinadas atividades.
  • Quando existe a necessidade de conectar com um usuário para testar a liberação de determinadas permissões.
  • Conectar com o usuário para validar determinados processos, etc.
Na versão Oracle 11g, o processo de recuperação da senha criptografada se difere um pouco da versão 10g uma vez que no 11g temos um “aprimoramento” no nível de segurança do Oracle, com a possibilidade de utilização de senhas case sensitive.

Para confirmar se a base está usando senhas com case sensitive devemos verificar o parâmetro SEC_CASE_SENSITIVE_LOGON . Este é um parâmetro dinâmico que por padrão é definido como TRUE . Para desativar o case sensitive, basta altera-lo para FALSE.

No exemplo a seguir, precisamos conectar com o owner lamim, porém não temos acesso a senha do mesmo.
Se verificarmos na coluna PASSWORD da DBA_USERS, podemos observar que diferentemente da versão 10g, na 11g essa coluna não é populada.
SQL> select username, PASSWORD from dba_users where USERNAME='LAMIM';
USERNAME                       PASSWORD
------------------------------ ------------------------------
LAMIM
Afim de validar o processo que estara sendo realizado, estarei demontrando a senha atual do owner LAMIM, bem como validando que a mesma está em modo case sensitive. Na primeira conexão usando a senha LamiM com L e M maiúsculo a conexão foi estabelecida com sucesso. Já na tentativa com a senha lamim toda em minúsculo não foi possível estabelecer uma conexão.
SQL> show parameter case;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sec_case_sensitive_logon             boolean     TRUE
SQL>
SQL> conn lamim/LamiM
Connected.
SQL> show user
USER is "LAMIM"
SQL> conn lamim/lamim
ERROR:
ORA-01017: invalid username/password; logon denied
Warning: You are no longer connected to ORACLE.
Para identificar a senha criptografada na versão 11g, estaremos usando as colunas SPARE4 e PASSWORD da USER$. Por isso precisamos consulta-las e armazena-las para poder voltar a senha padrão.
col spare4 for a90
SQL> select NAME, SPARE4, PASSWORD from USER$ where NAME='LAMIM';
NAME SPARE4 PASSWORD
------------------------------ --------------------------------------------------------
LAMIM S:6273B58E517EB4C3CD321DDFDFB1EDE7D107DE453B510449D9756AB6E4B3 3C3B7E8F1B042625
A senha criptografada será composta da seguinte forma ‘SPARE4;PASSWORD’.  Para poder conectar com o usuário e realizar as atividades necessárias, estaremos alterando temporariamente sua senha e posteriormente estaremos voltando a senha original, usando a senha criptografada que consultamos anteriormente.
Alterando a senha do usuário para uma senha temporária para podermos realizar a conexão:
SQL> alter user LAMIM identified by teste;
User altered.
SQL> conn lamim/teste
Connected.
SQL>
SQL> show user;
USER is "LAMIM"
SQL>
Voltando a senha original usando a senha criptografada – alter user <usuario> identified by values ‘<SPARE4;PASSWORD>';
SQL> alter user LAMIM identified by values 'S:6273B58E517EB4C3CD321DDFDFB1EDE7D107DE453B510449D9756AB6E4B3;3C3B7E8F1B042625';
User altered.
SQL>
Afim de validar que realmente voltamos a senha original, estarei realizando o mesmo teste de conexão realizado no início do artigo.
SQL> conn lamim/LamiM
Connected.
SQL> show user;
USER is "LAMIM"
SQL> conn lamim/lamim
ERROR:
ORA-01017: invalid username/password; logon denied
Warning: You are no longer connected to ORACLE.
SQL>
É possível verificar que a senha permanece a mesma, inclusive continuando como case sensitive.
Fonte:
http://www.oracle.com/technetwork/pt/articles/database-performance/definicao-senhas-case-sensitive-11g-496237-ptb.html
http://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams211.htm#REFRN10299

Postar um comentário

0 Comentários