Mostramos en este tutorial cómo cambiar la configuración del perfil de usuarios de Oracle 11g para que las contraseñas nunca caduquen. Mostramos cómo generar un script para cambiar las contraseñas de todos los usuarios de un servidor de base de datos Oracle 11g de forma automática.
- Cambiar la caducidad de las contraseñas a ilimitada, quitar caducidad, mostrar caducidad actual en Oracle 11g.
- Generar script para establecer la misma contraseña a todos los usuarios de Oracle 11g para deshabilitar su caducidad.
- Artículos relacionados.
- Créditos.
Cambiar la caducidad de las contraseñas a ilimitada, quitar caducidad, mostrar caducidad actual en Oracle 11g
Mostrar configuración del perfil de Oracle 11g, mostrar días de caducidad de contraseñas
En el motor de base de datos Oracle, a partir de la versión 11g, se estableció una política de caducidades de contraseñas. Desde esta versión, si no se especifica lo contrario, las contraseñas de todos los usuarios de Oracle (incluidos el SYS y el SYSTEM) caducarán transcurridos 180 días.
Para consultar los días de caducidad de contraseñas actuales en Oracle 11g, accediendo con SQLPlus, podemos ejecutar la consulta:
Select *
from DBA_PROFILES
where RESOURCE_NAME like ‘PASSWORD_LIFE_TIME’;
Nos devolverá algo así:
PROFILE | RESOURCE_NAME | RESOURCE | LIMIT |
DEFAULT | PASSWORD_LIFE_TIME | PASSWORD | 180 |
Si la contraseña de un usuario Oracle 11g está próxima a expirar mostrará el mensaje de error:
UDI-28002: operation generated ORACLE error 28002
ORA-28002: la contraseña vencerá en XXX días
Quitar la política de caducidad de contraseñas de Oracle 11g
Aunque por seguridad no es recomendable, Oracle 11g permite deshabilitar el modo de caducidad de contraseñas y dejarlo como las versiones anteriores, a ilimitado. Si nuestra organización no puede aplicar la política de caducidades de contraseñas de Oracle 11g (cada 180 días por defecto), podemos eliminar esta política y establecer las contraseñas de forma ilimitada. Para ello, desde la herramienta SQLPlus, ejecutaremos el siguiente comando:
alter profile DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
Si se ha ejecutado correctamente nos devolverá el mensaje:
Perfil modificado.
Ahora podemos volver a ejecutar el comando anterior para mostrar la configuración del perfil, tras el cambio de configuración nos debe devolver el siguiente resultado:
PROFILE | RESOURCE_NAME | RESOURCE | LIMIT |
DEFAULT | PASSWORD_LIFE_TIME | PASSWORD | UNLIMITED |
A partir de ahora, cualquier usuario que se cree nuevo en Oracle 11g ya no tendrá caducidad en la contraseña. Pero es importante tener en cuenta que a los usuarios ya creados se les seguirá aplicando la política anterior de caducidad, hasta que cambien la contraseña una vez más. Para solucionar este problema mostramos a continuación cómo generar un script que establecerá la misma contraseña que actualmente tiene cada usuario a él mismo, de forma que se le aplicará la nueva política de caducidad de contraseñas a ilimitada.
Generar script para establecer la misma contraseña a todos los usuarios de Oracle 11g para deshabilitar su caducidad
Como ya hemos comentado, aunque se aplique la política de caducidad de contraseñas ilimitada, esta política se aplicará a los nuevos usuarios y a los existentes que cambien la contraseña una vez aplicada dicha política. Por lo tanto, para los usuarios actuales, hasta que no se les cambie la contraseña, nos podemos encontrar con el error:
UDI-28002: operation generated ORACLE error 28002
ORA-28002: la contraseña vencerá en XXX días
ORA-28002: the password will expire within XXX days
Y si la contraseña ha expirado nos podemos encontrar con el error:
ORA-28001: la contraseña ha expirado
ORA-28001: the password has expired
Si no tenemos muchos usuarios en Oracle 11g, podemos cambiar su contraseña (estableciendo incluso la misma que tuvieran) con el comando:
alter user SYSTEM identified by contraseña;
Si tenemos muchos usuarios y queremos establecerles la misma contraseña que tengan para deshabiltar la opción de caducidad de contraseña podemos hacer lo siguiente:
1. En primer lugar, desde SQLPLus, ejecutaremos los siguientes comandos para desactivar el mostrar encabezados y activar la salida a fichero, de esta forma guardaremos el resultado de la siguiente select en un fichero de script:
set heading off
set feedback off
spool script_cambio_password.sql
2. A continuación, siguiendo en SQLPLus, ejecutaremos la siguiente consulta SQL para generar las consultas ALTER USER necesarias para cada usuario de nuestra base de datos Oracle 11g:
SELECT ‘alter user ‘ || u.NAME || ‘ identified by values »’ || u.PASSWORD || »’;’ FROM SYS.USER$ u;
La consulta anterior nos devolverá algo como lo siguiente guardándolo en el fichero script_cambio_password.sql:
alter user SYS identified by values ‘AADDFSSSXXXSDDD’;
alter user SYSTEM identified by values ‘AADDFDSS3X4X5D66’;
alter user FACTURACION identified by values ‘ABBDFDSSXDXSD3D’;
…Generará una línea por cada usuario de la base de datos Oracle 11g para poder cambiarle la contraseña a la misma que tenía, de esta forma se activará el nuevo perfil de caducidad ilimitada.
3. Desactivaremos la salida a fichero con:
spool off
4. Ahora ejecutaremos el script generado con:
@script_cambio_password.sql
De esta forma se regenerarán las contraseñas para todos los usuarios de forma automática y se activará el perfil de caducidad de contraseña ilimitada.
Artículos relacionados
- Oracle: Algunas consultas SQL muy útiles para el administrador de Oracle (DBA).
- Instalar Oracle Database 12c Release 1 x64 en Windows Server 2012 x64.
- Instalar Oracle Database 11g R2 Enterprise 64bits en Windows Server 2003 64 bits.
- Instalar Oracle Database 10g R2 x64 en Windows Server 2008 Standard x64.
- Instalar Oracle Database 11g Standard Edition en Windows XP Profesional.
- Instalar Oracle Database 10g en Windows XP.
- Instalar Oracle Database 10g Express Edition XE en Linux Ubuntu 6.06.
- Instalar Windows Server 2012 R2 Datacenter en entorno virtualizado VMware ESXi.
- Manual para instalar Oracle 9i en Windows con capturas de pantalla.
- Copias de seguridad en Oracle 11g, copia export, copia física RMAN.
- Definiciones de los componentes lógicos, físicos y de memoria de Oracle.
- Activar modo ARCHIVELOG en Oracle Database 11g R2.
- Algunas consultas SQL muy útiles para el administrador de Oracle (DBA).
- Concepto y ejemplo de creación de disparadores (triggers) en Oracle.
- Cómo instalar Oracle Client 9 en Windows XP.
- Tipos de datos / Datatypes en Oracle.
- Instalar Oracle Linux 6 en modo Database Server sobre ESXi 5.1.
- Instalar Oracle Enterprise Linux virtualizado con VMware Server en Windows 7.
- Instalar y testear Windows Server 2008 Enterprise Release Candidate.
- Instalar Microsoft Windows Server 2003 Enterprise Edition SP2.
- Consultas SQL de Oracle para obtener datos de una tabla.
- Cómo acceder a Oracle con Delphi sin utilizar código fuente.
- Auditoría de una base de datos Oracle ¿qué es? ¿para qué sirve? ¿cómo se activa?.
- Conectar APEX con una base de datos Oracle Database 9i externa.
- Insertar y extraer documentos en una tabla Oracle con Visual Basic 6.
- Los índices en Oracle, creación, eliminación, reconstrucción.
- Cómo crear una base de datos en Oracle 9 utilizando el asistente que incorpora.
- Acceso a una base de datos (Oracle) mediante ASP y ODBC.
- AjpdSoft Administración Bases de Datos.
- AjpdSoft Monitor Espacio Oracle Código Fuente Delphi.
- AjpdSoft Acceso a Oracle y MySQL Código Fuente Delphi.
- Instalación de Oracle Client en Windows XP.
- Instalar y realizar aplicación web con Oracle Application Express.
- Instalación y configuración de Windows XP Service Pack 3.
- Instalar agente de Symantec Backup Exec en WXP, copia de Oracle.
- Definición SQL.
Créditos
Artículo realizado íntegramente por Alonsojpd miembro fundador del Proyecto AjpdSoft.