Como redefinir a senha de um usuário bloqueado no Oracle

Vamos ver como podemos alterar uma senha de usuário no Oracle.

  

Alterando a senha do usuário pode ser muito fácil, mas o que, quando queremos redefinir a senha do usuário bloqueado para a senha antiga, mesmo que você não sabe disso! Isso é útil no caso de usuários Db_links bloqueadas ou usuários de gestão de idade.

       
  • Passo 1 - você precisa executar o script a seguir. Isto irá pedir o nome de usuário que você o que para redefinir a senha.
  •  select 'alter user "'||d.username||'" identified by values '''||u.password||''';' c
    from dba_users d, sys.user$ u
    where d.username = upper('&&username')
    and u.user# = d.user_id;
     

    Exemplo:

     Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    
    SQL> select 'alter user "'||d.username||'" identified by values '''||u.password||''';' Run
    from dba_users d, sys.u  2  ser$ u
    where   3  d.username = upper('&&username')
    and u.  4  user# = d.user_id;
    Enter value for username: dbsnmp
    old   3: where d.username = upper('&&username')
    new   3: where d.username = upper('dbsnmp')
    
    Run
    --------------------------------------------------------------------------------
    alter user "DBSNMP" identified by values '03C6C5879738E60F';
    
     
  • Step 2 - Execute o resultado gerado pelo último script:
  •  SQL> alter user "DBSNMP" identified by values '03C6C5879738E60F';
    
    User altered.
    
     

    Isso irá redefinir a senha para o usuário "DBSNMP" para a última senha.

    Isto pode ser útil quando chegarmos "ORA-28000: a conta está bloqueada". erro