Note:

Configuración de la renovación gradual de contraseñas en Oracle Database en Oracle Cloud Infrastructure

Introducción

La renovación gradual de contraseñas es una función de Oracle Database que permite cambiar la contraseña de un usuario de base de datos sin interrumpir las aplicaciones que utilizan actualmente la contraseña antigua. Con la renovación gradual de la contraseña, la contraseña antigua sigue siendo válida durante un período de tiempo especificado, después del cual ya no se acepta, es decir, se permiten dos contraseñas diferentes para un usuario temporalmente. Esto permite la propagación de la nueva contraseña a todas las aplicaciones cliente sin tiempo de inactividad. El período de renovación de contraseña comienza en el momento en que se cambia la contraseña.

La función de renovación gradual de contraseñas se muestra como una configuración de recurso de contraseña de perfil de usuario (límite de recursos de contraseña) PASSWORD_ROLLOVER_TIME, que se aplica a las sesiones de usuario. Los perfiles de usuario de Oracle Database son un juego de límites en los recursos de la base de datos: configuración de nivel de usuario. El perfil de usuario ayuda a regular la cantidad de recursos utilizados por cada usuario de base de datos. Una base de datos se crea con un perfil por defecto denominado DEFAULT, que se asigna a todos los usuarios de la base de datos si no se especifica lo contrario. Podemos utilizar el perfil por defecto o crear un nuevo perfil para agregar límites de recursos de contraseña.

En este tutorial, solo nos centraremos en PASSWORD_ROLLOVER_TIME y revisaremos una guía paso a paso para utilizar esta función en un servicio de base de datos de Oracle Autonomous Transaction Processing (ATP). Para ello, utilizaremos la herramienta Oracle SQL Developer Web de la consola de OCI.

Hay otras cosas que uno debe saber antes de usar la función de renovación de contraseña.

Objetivos

Requisitos

Tarea 1: Comprobación del perfil predeterminado en ATP

Veremos el perfil por defecto y el valor del recurso PASSWORD_ROLLOVER_TIME en un ATP.

Abra la herramienta Oracle SQL Developer Web y ejecute la siguiente consulta SQL para comprobar los límites del perfil DEFAULT.

select * from dba_profiles where profile = 'DEFAULT';

Imagen que muestra el resultado de la consulta.

En la siguiente imagen, vemos que el perfil DEFAULT tiene muchos recursos y que el límite (valor) de PASSWORD_ROLLOVER_TIME es 0. Esto significa que la renovación gradual de la contraseña está desactivada para el perfil DEFAULT. Se puede cambiar el límite de recursos en el perfil DEFAULT, pero crearemos un nuevo perfil para demostrar esta función.

Tarea 2: Creación de un nuevo perfil de usuario

Cree un perfil con FAILED_LOGIN_ATTEMPTS definido en 10 y el límite PASSWORD_ROLLOVER_TIME en 1 hora (1/24 días).

  1. Ejecute la siguiente consulta SQL para crear un perfil denominado PW_ROLLOVER_TIME_1HR_PROF.

    create profile PW_ROLLOVER_TIME_1HR_PROF limit FAILED_LOGIN_ATTEMPTS 10 PASSWORD_ROLLOVER_TIME 1/24;
    

    Imagen que muestra el resultado de la consulta.

  2. Ejecute la siguiente consulta SQL para comprobar el límite PASSWORD_ROLLOVER_TIME.

    select * from dba_profiles where profile = 'PW_ROLLOVER_TIME_1HR_PROF';
    

    Imagen que muestra el resultado de la consulta.

    El límite de recursos para PASSWORD_ROLLOVER_TIME es 0.416 (1/24 día) y los intentos de conexión fallidos se definen en 10.

Tarea 3: Creación de una cuenta de usuario

Crearemos una cuenta de usuario y asignaremos el perfil creado PW_ROLLOVER_TIME_1HR_PROF al usuario.

  1. Ejecute la siguiente consulta SQL para crear un usuario denominado db_test.

    create user db_test identified by "Pass_Rollover@2023" profile = 'PW_ROLLOVER_TIME_1HR_PROF';
    

    Imagen que muestra el resultado de la consulta.

    Un usuario existente también se puede asociar a un perfil mediante el siguiente comando.

    alter user <user_name> profile <profile_name>;
    
  2. Ejecute la siguiente consulta SQL para otorgar el privilegio CREATE SESSION para probar la conexión a la base de datos.

    GRANT CREATE SESSION TO DB_TEST;
    

    Imagen que muestra el resultado de la consulta.

  3. Comprobaremos el estado de la cuenta mediante la siguiente consulta SQL.

    select user_name, profile, account_status from dba_users where user_name = 'DB_TEST';
    

    Imagen que muestra el resultado de la consulta.

Tarea 4: Cambio de la Contraseña de Usuario

Cambie la contraseña de usuario y consulte el estado de la cuenta.

  1. Ejecute la siguiente consulta SQL para cambiar la contraseña de usuario.

    alter user DB_TEST identified by "New_Pass@2023";
    
  2. Compruebe el estado de la cuenta.

    Imagen que muestra el resultado de la consulta.

    El estado de la cuenta ahora muestra IN ROLLOVER, lo que significa que la cuenta de usuario DB_TEST está actualmente en renovación y que tanto la contraseña antigua como la nueva se pueden utilizar para conectarse al usuario durante 1 hora. Después de 1 hora, la contraseña antigua ya no se aceptará y las conexiones se pueden establecer solo con la nueva contraseña.

Tarea 5: Vencimiento forzoso del período de renovación

La función de renovación de contraseña nos permite hacer que caduque la renovación de forma forzada cuando no deseamos que la contraseña antigua sea válida para el período de renovación restante.

  1. Ejecute la siguiente consulta SQL para que caduque la renovación de contraseña del usuario.

    alter user DB_TEST expire password rollover period;
    

    Imagen que muestra el resultado de la consulta.

  2. Compruebe el estado de la cuenta.

    Imagen que muestra el resultado de la consulta.

    El estado de la cuenta ha cambiado a OPEN y ya no podemos conectarnos a la base de datos con una contraseña antigua. Por lo tanto, cuando un usuario está en renovación, como las contraseñas nuevas y antiguas son funcionales, el estado de la cuenta en la tabla DBA_USERS es OPEN & IN ROLLOVER y el estado de la cuenta cambia a OPEN después de que caduque el período de renovación.

Agradecimientos

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en Oracle Learning Explorer.

Para obtener documentación sobre el producto, visite Oracle Help Center.