Acceder como SYSDBA a SQLPLUS sin conocer el password

De entrada esta “pretensión” de querer entrar a sqlplus sin conocer el password del usuario “SYS” puede ser una pretensión un tanto ambiciosa, pero que como podréis comprobar es más necesario de lo habitual y no es tan difícil.

En ocasiones, si eres un DBA de esos a los que tu empresa te manda cada dos por tres a clientes diferentes donde han pasado diferentes DBA´s y te encuentras que cuando llegas al cliente, ni el mismo cliente conoce los passwords ni de SYS ni de SYSTEM. Pero almenos se tiene acceso al servidor con cuentas de usuario de sistema operativo, si es la de oracle, ya tenemos mucho ganado, sino con root nos bastaría, o incluso, simplemente con poder acceder a una cuenta de usuario que nos permita crear usuarios y asignarle el grupo que deseamos, ya tendríamos solucionado el problema de no conocer el password de SYS o SYSTEM.

Os pongo en situación:

No conocemos el password de SYS ni de SYSTEM. Pero tenemos que realizar tareas de administración.

Nos tenemos que plantear lo siguiente…

- ¿ Tenemos acceso al servidor con un usuario de sistema operativo ? ¿ cúal ?
- ¿ Tenemos acceso al servidor con el usuario de sistema operativo oracle ?
- ¿ Tenemos acceso al servidor con  el usuario root ?

Pues si tenemos acceso con “root” al sistema operativo es fácil. Si hacemos el “su” al usuario oracle ya podremos acceder al servidor de base de datos de dos maneras diferentes con perfil de DBA.

# su – oracle
$ whoami
oracle

– Ahora entramos a sqlplus: forma 1
$ sqlplus “/as sysdba”
$ show user
SQL> show user
USER is “SYS”
SQL>

– O  entramos a sqlplus: forma 2
$ sqlplus /nolog
$ show user
SQL> show user
USER is “”
SQL> connect /as sysdba
SQL> show user
USER is “SYS”

Si tenemos acceso con el usario “oracle”, pues simplemente ejecutar cualquiera de las formas anteriores del ejemplo.

Y sino tenemos acceso con “root” pero tenemos acceso con un usuario que tenga permisos para crear usuarios y cambiar el grupo. Lo que deberíamos hacer es crearnos un usuario con cualquier nombre y asignarlo al grupo “dba”, configuraríamos el .profile (.bash_profile) del usuario el entorno Oracle (Path, ORACLE_HOME, ORACLE_SID, etc…) y entraríamos posteriormente con ese usuario al S.O y luego a sqlplus como lo hemos hecho en cualquiera de los dos ejemplos anteriores.

Para hacer lo comentado anteriormente, primero crearemos el usuario:

# useradd usuario_dba -m -g dba
# passwd usuario_dba
Introduciremos el password.

Ahora configuraremos el entorno Oracle para este usuario. Para ello es necesario conocer algunas de las variables de entorno imprescindibles que tendremos en un “.profile” del usuario “oracle”. Este profile nos sirve de ejemplo y lo tendremos que adaptar al entorno que queremos administrar, es decir, cambiar el ORACLE_HOME y el ORACLE_SID  y adecuarlo al entorno que vamos a administrar.

Ejemplo de .bash_profile en Linux RedHat válido para el entorno Oracle:

#vi  .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

ORACLE_HOME=/u/oracle/11.2.0/ORCL
export ORACLE_HOME

PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch
export PATH

ORACLE_SID=ORCL
export ORACLE_SID

LD_LIBRARY_PATH=/usr/lib64:$ORACLE_HOME/lib
export LD_LIBRARY_PATH

ORACLE_UNQNAME=ORCL
export ORACLE_UNQNAME

Las líneas anteriores adaptadas al servidor en concreto que queramos administrar serán las que deberemos añadir en nuestro “profile” del usuario que hayamos creado.

Una vez hecho esto, ya podemos salir y volver a entrar con el usuario para cargar el profile y ejecutar sqlplus como en los primeros ejemplos. Finalmente, comentar que si quisíeramos cambiar una vez conectados a sqlplus, por ejemplo, el password del usuario SYSTEM, lo podríamos hacer sin ningún problema ejecutando:

SQL> alter user SYSTEM identified by “<nuevo password>”;

¿ No es tan complicado verdad ?

This entry was posted in Administración Oracle, Administración Sistemas, Linux and tagged , , , . Bookmark the permalink.

Deja un comentario