The Geek Diary
Este punto de venta cubre los siguientes escenarios:
- Recuperación de la contraseña de sistema perdida mediante autenticación de SO en Unix.
- Recuperar la contraseña de sistema perdida mediante la autenticación de archivos de contraseña en Unix.
- Recuperación de la contraseña de sistema perdida mediante autenticación NTS en Windows.
- Recuperar la contraseña de sistema perdida mediante la autenticación de archivos de contraseña en Windows.
Los métodos que se utilizarán se basan en:
1. Autenticación del sistema operativo
2. autenticación de archivos de contraseña.
Recuperación de la contraseña de sistema perdida mediante autenticación de sistema operativo en Unix
1. Asegúrese de que el usuario del sistema operativo que ha iniciado sesión es miembro del grupo dba. Si no se conoce el grupo dba, compruebe el archivo:
$ ORACLE_HOME/rdbms/lib/config.c (or config.s)
2. Asegúrese de que el sqlnet.el archivo ora no contiene el:
sqlnet.authentication_services
parámetro. Si este parámetro existe, debe ser comentado.
3. compruebe los parámetros ORACLE_HOME, ORACLE_SID y PATH. Deben corresponder a los parámetros de la instancia de Oracle donde se ha perdido la contraseña del sistema.
4. conectarse a la instancia mediante:
$ sqlplus /nologsql> connect / as sysdba
5. Cambiar la contraseña del sistema usando:
sql> alter user sys identified by ;
Si un archivo de contraseña está en uso, el comando también actualizará el archivo de contraseña, por lo que no es necesario volver a crear este archivo.
Recuperar la contraseña de sys perdida mediante autenticación de archivos de contraseña en Unix
Si la contraseña de SYS no se conoce y la autenticación del sistema operativo no es una opción, se puede usar este método. Este método asume que la cuenta de SYS no es accesible, por lo que podría ser necesario un cierre abrupto de la base de datos.
1. Asegúrese de que el parámetro de inicialización REMOTE_LOGIN_PASSWORDFILE esté establecido en COMPARTIDO o EXCLUSIVO. Cambiar este valor de parámetro requiere reiniciar la instancia.
2. Deshabilite la autenticación del sistema operativo, si está habilitada por alguna razón, configurando:
sqlnet.authentication_services=(none)
en la sqlnet.archivo ora (copia de seguridad de la red sqlnet existente.archivo ora antes de realizar cualquier cambio).
3. ir al destino del sistema operativo para el archivo de contraseña:
$ cd $ORACLE_HOME/dbs
4. Hacer una copia de seguridad del archivo de contraseña anterior:
$ cp orapw$ORACLE_SID orapw$ORACLE_SID.bak
5. Volver a crear el archivo de contraseña con el comando orapwd:
$ orapwd file=orapw$ORACLE_SID password=
6. Intente conectarse con la nueva contraseña.
$ sqlplus /nologconnect sys as sysdba
7. Como una comprobación adicional, si lo anterior es correcto, consulta:
sql> select * from v$pwfile_users;
Si devuelve al menos una línea, entonces todo está bien y la nueva passwordfile está en uso.
8. Cambie la contraseña del sistema en el diccionario de datos usando:
sql> alter user sys identified by ;
Por supuesto, la nueva contraseña debe coincidir con la nueva contraseña del archivo de contraseña, si esa contraseña se va a conservar, o se puede establecer en otra cosa si se va a cambiar la contraseña inicial. Este comando también actualizaría el archivo de contraseña.
9. Si la prueba en el paso no se realiza correctamente, la instancia debe reiniciarse. Podría ser que, si no es posible el acceso sysdba o sysoper, la instancia deba desactivarse abruptamente, haga esto:
– matando un proceso en segundo plano (preferiblemente matando a SMON, para que PMON pueda hacer algo de limpieza).
– eliminar los recursos de memoria compartida mediante ipcrm si mi PMON no los elimina.
10. Después de reiniciar la instancia, compruebe si la contraseña del SISTEMA está operativa y si hay al menos una entrada en v pw pwfile_users. Si otros usuarios tenían previamente entradas en el archivo de contraseña, vuelva a concederles SYSDBA o SYSOPER.
11. Restaure la sqlnet.archivo ora de la copia de seguridad ejecutado en el paso # 2, si es necesario.
Recuperación de la contraseña de sistema perdida mediante autenticación NTS en Windows
1. Asegúrese de que el usuario del sistema operativo que ha iniciado sesión es miembro del grupo ORA_DBA de Windows.
2. También asegúrese de que el sqlnet.el archivo ora tiene la siguiente línea:
sqlnet.authentication_services = (nts)
3. Conectarse a la instancia mediante:
$ sqlplus /nologconnect / as sysdba
4. Cambiar la contraseña del sistema usando:
sql> alter user sys identified by ;
Si un archivo de contraseña está en uso, el comando también actualizará el archivo de contraseña, por lo que no es necesario volver a crear este archivo.
Recuperar la contraseña de sistema perdida mediante la autenticación de archivos de contraseña en Windows
Si no se conoce la contraseña de sistema y la autenticación del sistema operativo no es una opción, se puede usar este método. Este método asume que la cuenta de SYS no es accesible, por lo que podría ser necesario apagar la base de datos, esto se puede lograr deteniendo el OracleServiceSID en su sistema.
1. Asegúrese de que el parámetro de inicialización REMOTE_LOGIN_PASSWORDFILE esté establecido en COMPARTIDO o EXCLUSIVO.
2. deshabilite la autenticación del sistema operativo, si está habilitada por alguna razón, configurando:
sqlnet.authentication_services=(none)
en la sqlnet.archivo ora
3. ir al destino del sistema operativo para el archivo de contraseña:
cd %ORACLE_HOME%\database
4. Hacer una copia de seguridad del archivo de contraseña anterior:
cp pwd.ora pwd.ora.bak
5. Volver a crear el archivo de contraseña con el comando orapwd:
orapwd file=pwd.ora password=
6. Intente conectarse con la nueva contraseña.
sqlplus /nologconnect sys as sysdba
7. Como una comprobación adicional, si lo anterior es correcto, consulta:
sql> select * from v$pwfile_users;
Si devuelve al menos una línea, entonces todo está bien y la nueva passwordfile está en uso.
8. cambie la contraseña del sistema en el diccionario de datos usando:
sql> alter user sys identified by ;
Por supuesto, la nueva contraseña debe coincidir con la nueva contraseña del archivo de contraseña, si esa contraseña se va a conservar, o se puede establecer en otra cosa si se va a cambiar la contraseña inicial. Este comando también actualizaría el archivo de contraseña.
9. Si la prueba en el paso no se realiza correctamente, la instancia debe reiniciarse. Esto se puede hacer reiniciando el servicio.
10. Después de reiniciar la instancia, compruebe si la contraseña del SISTEMA está operativa y si hay al menos una entrada en v pw pwfile_users. Si otros usuarios tenían previamente entradas en el archivo de contraseña, vuelva a concederles SYSDBA o SYSOPER.
11. vuelva a habilitar la autenticación NTS configurando:
sqlnet.authentication_services=(nts)
si es necesario.