martes, 19 de mayo de 2015

Recuperar contraseña de usuarios Oracle

Hola a todos,

En esta ocasión nos encontramos con un problema un cliente me hace la llamada para desbloquear un usuario el creaia tener la clave pero resulto que no sabia y aquí el problema es fácil poner una clave nueva con un ALTER USER pero puede que la aplicación deje de funcionar con la base de datos por que la contraseña cambió.


Bueno aquí el tip para recuperar la contraseña.


Datos generales:

Versión Base de datos: 11.2.0.4

Recuperar clave usuario oracle

1)  Nos conectamos como sysdba usando la autenticación de sistema operativo

[oracle@bbdsw ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Tue May 19 12:27:32 2015

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


Connected to:
Oracle Database 11g Release 11.2.0.4.0 - 64bit Production


2) Comprobamos que la base de datos este en modo OPEN

SQL> select * from v$instance;

INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
HOST_NAME
----------------------------------------------------------------
VERSION  STARTUP_T STATUS PAR THREAD# ARCHIVE LOG_SWITCH_WAIT
----------------- --------- ------------ --- ---------- ------- ---------------
LOGINS   SHU DATABASE_STATUS INSTANCE_ROLE    ACTIVE_ST BLO
---------- --- ----------------- ------------------ --------- ---
     1 switch
bbdsw.aseyco.local
11.2.0.4.0  24-NOV-14 OPEN NO      1 STOPPED
ALLOWED    NO  ACTIVE PRIMARY_INSTANCE   NORMAL    NO



3) Realizamos la consulta para recuperar la contraseña
   
     Formato:SELECT DBMS_METADATA.GET_DDL('USER','<Nombre del Usuario') FROM DUAL;

SQL> SELECT DBMS_METADATA.GET_DDL('USER','ADMINSWITCH') FROM DUAL;


DBMS_METADATA.GET_DDL('USER','ADMINSWITCH')                                  
--------------------------------------------------------------------------------
                                                                             
   CREATE USER "ADMINSWITCH" IDENTIFIED BY VALUES
'S:68D98AB835C31574415A9F252CCA5A354667AEC71B0C0CDA0170F9FFAB11;50267B99CC3AF258'                          
      DEFAULT TABLESPACE "SWITCH_TRANSACCIONAL"                              
      TEMPORARY TABLESPACE "TEMP"                                            
      PASSWORD EXPIRE

4) Actualizar la clave para que deje de estar expirada, es necesario copiar todo el values de la consulta anterior.

      Formato: ALTER USER <Nombre del Usuario>  IDENTIFIED BY VALUES '< Todo el values de la         consulta           anterior>';

SQL> ALTER USER ADMINSWITCH IDENTIFIED BY VALUES 'S:68D98AB835C31574415A9F252CCA5A354667AEC71B0C0CDA0170F9FFAB11;50267B99CC3AF258';

User altered.


Con esto ya su usuario ya no tiene la cuenta expirada y no es necesario cambiar la contraseña ya que se recupero.

Espero sea de su ayuda.