lunes, 23 de febrero de 2015

Consultar contraseñas de un usuario en Oracle Database

Por obvias razones de seguridad no se puede consultar en claro la contraseña de los usuarios de la base de datos, pero un usuario administrador como SYSTEM sí que tiene privilegios para consultar el password encriptado:

SQL> select password from dba_users where username='SCOTT';
PASSWORD
-----------------------------
F894844C34402B67
La utilidad de esto está en que lo mismo que nos retorna la SELECT se puede utilizar en una sentencia de modificación de la contraseña;

SQL> alter user scott identified by values 'F894844C34402B67';
Con esto no hemos hecho nada, ya que le hemos asignado a SCOTT la misma contraseña que tenía (TIGER), pero si cambiamos la contraseña:

SQL> alter user scott identified by nuevacontraseña;
SQL> connect scott/nuevacontraseña
Connected.
Y ahora queremos volver a ponerle la contraseña inicial:

SQL> connect system/dbapwd
Connected.
SQL> alter user scott identified by values 'F894844C34402B67';
User altered.
SQL> connect scott/tiger
Connected.
Este ejemplo es sólo ilustrativo, pero este sistema puede ser realmente útil para recrear un usuario, o replicarlo en otro entorno con el mismo password que tenía. Si no recordamos cuál es su password, no lo tenemos almacenado, y no tenemos ganas de preguntar a nadie, podemos recuperar la contraseña encriptada, recrear el usuario con una contraseña cualquiera, y después modificarla con la encriptada que nos hemos guardado:

SQL> create user prueba identified by contraseña;
Usuario creado.
SQL> select password from dba_users where username='PRUEBA';
PASSWORD
------------------------------
808E242669FC5270
SQL> drop user prueba;
Usuario borrado.
SQL> create user prueba identified by loquequieras;
Usuario creado.
SQL> alter user prueba identified by values '808E242669FC5270';
Usuario modificado.
De esta manera hemos vuelto a crear el usuario prueba con la misma contraseña que tenía, y sin conocerla.

1 comentario:

  1. Buenas tardes, tengo un problema, cuando introduzco el select para conocer la contraseña, me manda en blanco el resultado y aunque intente cambiar de contraseña al usuario me sigue devolviendo el mismo error. qué puedo hacer?

    ResponderEliminar