Un mot de passe est le verrou de sécurité le plus basique pour protéger à l’accès à une ressource. Il est essentiel que celui-ci soit complexe, mélangeant les caractères (minuscule, majuscule, chiffre et caractère spécial) et ayant une longueur suffisante (huit caractères est un minimum). Les comptes « administrateur » se doivent d’être encore mieux protégés, avec par exemple une longueur de 12 ou 15 caractères. Plus le mot de passe est long et complexe, plus il sera difficile de le trouver pour un pirate ou un utilisateur malveillant. Car parfois, la menace est interne à l’entreprise ou l’organisation, et non pas externe.

Il en va de même pour protéger l’accès à un serveur de base de données Oracle. L’éditeur recommande de changer le mot de passe administrateur (sys) tous les 180 jours, soit environ deux fois par an. Si ce n’est pas fait, le compte sera automatiquement verrouillé. Malheureusement, le SGBD ne prévient pas avant de verrouiller le compte si la personne ne s’y connecte pas dans les sept jours avant l’expiration et l’administrateur ne pourra donc plus s’y connecter. Il se peut donc que, un beau matin, l’erreur « ORA-28001 : the password has expired » s’affiche à l’écran en voulant se connecter au serveur Oracle avec le compte utilisateur en question.

tutoriel Oracle erreur ora 28001 password expired mot de passe expiré

Ce tutoriel explique comment modifier et réactiver un compte utilisateur ou administrateur Oracle en ligne de commande, avec SQL Plus ou SQL Developer. Cette procédure fonctionne avec Oracle 19 toutes version (Enterprise, Standard, One, Express et Personal) et peu importe le système d’exploitation (Windows Server, Linux, UNIX, Docker). Cet autre guide indique comment le faire avec Enterprise Manager Oracle 12.

Pour faire plus radical, suivre ce tutoriel pour supprimer l’expiration du mot de passe Oracle.

 

Mettre à jour un mot de passe utilisateur Oracle

1. Se connecter au serveur Oracle, en local ou à distance, en SQL*Plus ou avec SQL Developer, avec un compte utilisateur non expiré ou un autre compte administrateur (system, sys…) :

  • sqlplus user/password@serveurdistant   (où ‘distant‘ est l’alias de tnsnames.ora)
  • ouvrir une connexion SQL Developer sur le serveur en question

2. Saisir la commande suivante :

ALTER USER username IDENTIFIED BY "motdepasse" ;

username est le nom d’utilisateur et motdepasse le nouveau mot de passe.

Remarques : les guillemets sont optionnels mais indispensables en cas de caractères spéciaux, par exemple  »mot&passe » .

Il est possible de redéfinir le même mot de passe que celui précédemment utilisé. Cela ne modifiera donc pas le moyen d’accès des sessions enregistrées mais cela repoussera le délai d’expiration du compte de 180 nouveaux jours.

3. La réponse de la  commande doit être du type :

  • « Utilisateur modifié » pour SQL Plus
  • « User username modifié(e) » avec SQL Developer

Il y a donc un nouveau délai de 180 jours avant que ce mot de passe n’expire à nouveau.