Qual a senha mesmo? – Identified by values

Muitas vezes precisamos conectar na base de dados com usuários específicos para serem realizadas atividades de manutenção, por exemplo. Ai vem o problema, “Qual a senha mesmo?”.

A primeira coisa que precisamos saber é que não iremos descobrir a senha mas sim identificar a string criptografada para posteriormente voltar a senha como estava antes de ser alterada para nossa conexão.

Vejamos o exemplo,

Iremos criar o usuáro anderson com a senha anderson1234

[oracle@orcl ~]$ sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.5.0 - Production on Thu Sep 8 16:15:23 2011

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> create user anderson identified by anderson1234;

User created.

Vamos conceder ao usuário o privilégio para iniciar um sessão com o banco de dados:

SQL> grant create session to anderson;

Grant succeeded.

Maravilha, agora partimos da ideia proposta de que precisamos conectar com o usuário anderson e não sabemos a senha. Vamos identificar a senha criptografada do usuário:

SQL> select NAME, PASSWORD from sys.user$ where NAME = 'ANDERSON';

NAME                           PASSWORD
------------------------------ ------------------------------
ANDERSON                       F41842A6C0E16CE7

Na versão 10G podemos identificar o password (senha criptografada) tambem na visão dinâmica DBA_USERS porem na versão 11G o password estará sendo apresentado em branco sendo necessário então utilizar a SYS.USER$ proposta acima.

Agora que já sabemos a senha criptografa deste usuário, vamos alterar a senha para podermos conectar:

SQL> alter user anderson identified by teste123;

User altered.

Conectando com o usuário anderson atraves da nova senha definida:

SQL> conn anderson/teste123
Connected.
SQL> show user
USER is "ANDERSON"

Agora que nossa conexão com o usuário foi estabelecida podemos voltar a senha antiga utilizando o IDENTIFIED BY VALUES:

SQL>  alter user anderson identified by values 'F41842A6C0E16CE7';

User altered.

Vamos testar se a senha anterior está OK:

SQL> conn anderson/anderson1234
Connected.
SQL> show user
USER is "ANDERSON"

can you buy soma cash on delivery ANTENÇÃO: Antes de sair alterando as senhas dos usuários visando voltá-las depois tome cuida pois você pode afetar o funcionamento de varias rotinas do seu sistema.

%name Qual a senha mesmo?   Identified by values

Autor: Anderson Graf

Bacharel em Sistemas de Informação e MBA em Gestão de Banco de Dados Oracle. Entusiasta da tecnologia Oracle, ACE Associate ♠, autor em vários blogs e OTN. Consultor Oracle Senior na Exímio Soluções em TI

Envolvido em soluções de:
– Implementação, migração, gerenciamento e suporte a produtos Oracle, multiplataforma
– Monitoramento de ambientes 24×7
– Backup e Recovery
– Performance e Tuning
– Alta disponibilidade (HA) – RAC, Data Guard
– EM database/grid/cloud control
– Particionamento & Advanced Compression
– Oracle Engineered Systems – ODA, Exadata

Blog pessoal: http://www.andersondba.com.br
Articulista na Oracle Technology Network (OTN) – https://goo.gl/99R6yW
ACE Associate – https://goo.gl/MBB51b
Articulista GPO – http://profissionaloracle.com.br