- Blogzote.com - https://www.blogzote.com -

Conectarme a Oracle con cualquier usuario

Este ejemplo lo tenia guardado desde hace mucho, fue apenas que necesite accesar a la base de datos con un usuario del que no tenia password que me acorde de el, no se puede decir que sea un “bug” de Oracle, es mas una funcionalidad que pocos conocen, seguramente existe algún privilegio por ahí escondido o que pocos conocen para no permitir cambiar passwords de usuarios de esta manera.

El resultado: poder entrar con cualquier usuario a la base de datos Oracle, yo lo he probado en una base de datos 8i, lo probé en una 10g y en este ejemplo uso la 10g express edition, ¿como? Aquí se los dejo:

Primero crearemos un usuario de prueba, solo para darnos una idea de como funciona y no hechar a perder algo en caso de que no funcione.

SQL> create user prueba identified by prueba;

User created.

SQL> grant connect,resource to prueba;

Grant succeeded.

SQL> select password from dba_users where username = 'PRUEBA'; 

PASSWORD
------------------------------
E552C348C0B39E0E

Después alteramos el usuario con el password de nuestra elección para poder entrar con el, en este caso crearé una tabla y la borrare en el esquema de este usuario:

SQL> alter user prueba identified by mipassword;

User altered.

SQL> connect prueba/mipassword@xe;

Connected.

SQL> create table table_prueba (columna  varchar2(100));

Table created.

SQL> drop table table_prueba;

Table dropped.

Hasta aquí nada raro, cualquiera con los privilegios puede alterar el password de un usuario para poder entrar con el, pero la cosa es regresar a ese usuario el password anterior que no sabemos, aquí nos damos cuenta para que sirvió el select al password de dba_users:

SQL> conn system/mipass@xe;

Connected.

SQL> alter user prueba identified by values 'E552C348C0B39E0E';

User altered.

Y por ultimo en este caso solo para comprobar que esto funciono:

SQL> connect prueba/prueba@xe;
Connected.

Por supuesto que esta por demás advertir que si están en un ambiente controlado y ustedes, por políticas de su empresa, no deberían de poder entrar/modificar/crear/borrar la información del usuario con el que piensen entrar, se estarán arriesgando a que su acceso sea descubierto, existen muchas formas de llevar a un log la actividad de cualquier usuario, algunas empresas se toman esas políticas mas en serio que otras, por lo que se los dejo a su criterio.