Remarques :

Configuration de la reconduction progressive des mots de passe dans Oracle Database sur Oracle Cloud Infrastructure

Introduction

La reconduction progressive des mots de passe est une fonctionnalité d'Oracle Database qui permet de modifier le mot de passe d'un utilisateur de base de données sans interrompre les applications qui utilisent actuellement l'ancien mot de passe. Avec le remplacement progressif du mot de passe, l'ancien mot de passe reste valide pendant une période donnée, après quoi il n'est plus accepté, c'est-à-dire que deux mots de passe différents sont autorisés temporairement pour un utilisateur. Cela permet de propager le nouveau mot de passe vers toutes les applications client sans aucun temps d'inactivité. La période de remplacement du mot de passe commence au moment où le mot de passe est modifié.

La fonctionnalité de remplacement progressif du mot de passe est exposée en tant que paramètre de ressource de mot de passe de profil utilisateur (limite de ressource de mot de passe) PASSWORD_ROLLOVER_TIME, qui est appliqué aux sessions utilisateur. Les profils utilisateur dans Oracle Database sont un ensemble de limites sur les ressources de base de données : la configuration au niveau de l'utilisateur. Le profil utilisateur permet de réguler la quantité de ressources utilisées par chaque utilisateur de base de données. Une base de données est créée avec un profil par défaut nommé DEFAULT, qui est affecté à tous les utilisateurs de la base de données si aucun autre profil n'est indiqué. Nous pouvons utiliser le profil par défaut ou créer un nouveau profil pour ajouter des limites de ressource de mot de passe.

Dans ce tutoriel, nous allons nous concentrer uniquement sur PASSWORD_ROLLOVER_TIME et passer par un guide détaillé pour l'utilisation de cette fonctionnalité dans un service de base de données Oracle Autonomous Transaction Processing (ATP). Pour cela, nous allons utiliser l'outil Oracle SQL Developer Web de la console OCI.

Il y a d'autres choses que vous devez savoir avant d'utiliser la fonction de remplacement de mot de passe.

Objectifs

Prérequis

Tâche 1 : vérifier le profil par défaut dans le DAV

Le profil par défaut et la valeur de la ressource PASSWORD_ROLLOVER_TIME apparaîtront dans un DAV.

Ouvrez l'outil Oracle SQL Developer Web et exécutez la requête SQL suivante pour vérifier les limites du profil DEFAULT.

select * from dba_profiles where profile = 'DEFAULT';

Illustration du résultat de la requête.

Dans l'image suivante, le profil DEFAULT dispose de nombreuses ressources et la limite (valeur) de PASSWORD_ROLLOVER_TIME est de 0. Cela signifie que la reconduction progressive du mot de passe est désactivée pour le profil DEFAULT. La limite de ressources dans le profil DEFAULT peut être modifiée, mais nous allons créer un nouveau profil pour illustrer cette fonctionnalité.

Tâche 2 : créer un profil utilisateur

Créez un profil avec FAILED_LOGIN_ATTEMPTS défini sur 10 et la limite PASSWORD_ROLLOVER_TIME sur 1 heure (1/24 jour).

  1. Exécutez la requête SQL suivante pour créer un profil nommé PW_ROLLOVER_TIME_1HR_PROF.

    create profile PW_ROLLOVER_TIME_1HR_PROF limit FAILED_LOGIN_ATTEMPTS 10 PASSWORD_ROLLOVER_TIME 1/24;
    

    Illustration du résultat de la requête.

  2. Exécutez la requête SQL suivante pour vérifier la limite PASSWORD_ROLLOVER_TIME.

    select * from dba_profiles where profile = 'PW_ROLLOVER_TIME_1HR_PROF';
    

    Illustration du résultat de la requête.

    La limite de ressources pour PASSWORD_ROLLOVER_TIME est 0.416 (1/24 jour) et les tentatives de connexion ayant échoué sont définies sur 10.

Tâche 3 : créer un compte utilisateur

Nous allons créer un compte utilisateur et affecter le profil créé PW_ROLLOVER_TIME_1HR_PROF à l'utilisateur.

  1. Exécutez la requête SQL suivante pour créer un utilisateur nommé db_test.

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

    Illustration du résultat de la requête.

    Un utilisateur existant peut également être associé à un profil à l'aide de la commande suivante.

    alter user <user_name> profile <profile_name>;
    
  2. Exécutez la requête SQL suivante pour accorder le privilège CREATE SESSION de test de la connexion de base de données.

    GRANT CREATE SESSION TO DB_TEST;
    

    Illustration du résultat de la requête.

  3. Nous allons vérifier le statut du compte à l'aide de la requête SQL suivante.

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

    Illustration du résultat de la requête.

Tâche 4 : modifier le mot de passe utilisateur

Modifiez le mot de passe utilisateur et consultez le statut du compte.

  1. Exécutez la requête SQL suivante pour modifier le mot de passe utilisateur.

    alter user DB_TEST identified by "New_Pass@2023";
    
  2. Vérifiez le statut du compte.

    Illustration du résultat de la requête.

    Le statut du compte affiche désormais IN ROLLOVER, ce qui signifie que le compte utilisateur DB_TEST est actuellement reporté et que l'ancien et le nouveau mot de passe peuvent être utilisés pour se connecter à l'utilisateur pendant 1 heure. Après 1 heure, l'ancien mot de passe ne sera plus accepté et les connexions peuvent être établies à l'aide du nouveau mot de passe uniquement.

Tâche 5 : expiration forcée de la période de reconduction

La fonctionnalité de reconduction de mot de passe nous permet d'expirer la reconduction de manière forcée lorsque nous ne voulons pas que l'ancien mot de passe soit valide pour la période de reconduction restante.

  1. Exécutez la requête SQL suivante pour faire expirer la reconduction du mot de passe pour l'utilisateur.

    alter user DB_TEST expire password rollover period;
    

    Illustration du résultat de la requête.

  2. Vérifiez le statut du compte.

    Illustration du résultat de la requête.

    Le statut du compte est passé à OPEN et nous ne pouvons plus nous connecter à la base de données à l'aide de l'ancien mot de passe. Par conséquent, lorsqu'un utilisateur est en reconduction, comme les nouveaux mots de passe et les anciens mots de passe, le statut du compte dans la table DBA_USERS est OPEN & IN ROLLOVER et le statut du compte devient OPEN après l'expiration de la période de reconduction.

Remerciements

Ressources de formation supplémentaires

Parcourez d'autres ateliers sur docs.oracle.com/learn ou accédez à davantage de contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, rendez-vous sur education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.