Retrouver son mot de passe Microsoft Access 2000 perdu

Avertissement : Le Code pénal français réprime l’intrusion et le maintien frauduleux dans les systèmes de traitement automatisé de données. La procédure fournie dans cet article ne doit servir qu’à déverrouiller des fichiers vous appartenant.

Il y a plus de 10 ans, j’avais développé un petit exécutable qui se connectait à une base de données Microsoft® Access 2000 pour afficher son contenu.

Aujourd’hui, je souhaite récupérer la structure de ma base et son contenu. Le code source de l’exécutable est introuvable: il ne reste plus que la base (BASE.MDB) ainsi qu’un autre fichier (COMPTES.MDW). Lorsque je tente de lire BASE.MDB avec Access, celui-ci me demande un mot de passe que j’ai oublié depuis belle lurette.

Sécurité Access à partir d’Access 95

Du coup, je n’ai plus accès à mon propre travail. Je suis bloqué à cause de ce mot de passe perdu puisqu’à partir d’Access 95, Microsoft a implémenté une protection facultative des bases de données par mot de passe (Access 2.0 ne dispose pas de ce mécanisme de sûreté).

Si le mot de passe de la base de données est activé, une boîte de dialogue apparaît à chaque fois que vous ouvrez la base de données. Le mot de passe de base de données est le même pour tous les utilisateurs. Il n’est donc pas lié à un utilisateur ou à un compte. Pour cette raison, certains l’appellent parfois « le mot de passe partagé ».

Comme le mot de passe de base de données est stocké dans la base de données, il est arrivé qu’en cas de corruption de la base, Access considère qu’elle est protégée par un mot de passe. Dans ce cas, il est parfois possible de récupérer une base de données Access corrompu.

Récupérer le mot de passe de la base de données

Le logiciel Access Password Pro, qui récupère les mots de passe perdus pour les bases de données Microsoft Access ainsi que les mots de passe des utilisateurs, me révèle instantanément le mot de passe d’accès à la base de données (« Aa123456« ).

Maintenant que j’ai le mot de passe d’accès à la base de données, il reste le plus dur. En effet, il existe un mécanisme supplémentaire de protection des données dans Microsoft Access: les mots de passe utilisateurs. Cette protection est aussi facultative.

Sécurité Access jusqu’à Access 2003

Toutes les versions d’Access, jusqu’à la version Access 2003 incluse, prennent en charge les mots de passe utilisateurs. Si ce système de sécurité est activé, les utilisateurs doivent s’authentifier par un compte et un mot de passe lors de la connexion à Microsoft Access.

Sur un même objet (une table, etc.), deux utilisateurs distincts peuvent avoir des permissions différentes. Les autorisations peuvent être accordées soit à des utilisateurs, soit à des groupes internes d’Access.

Toutes ces informations de sécurité sont stockées dans une base de données système spécial. Celle-ci peut être partagée entre les différentes bases de données et des applications. En principe, cette base de données système est dans un fichier avec une extension .mda dans Access 2.0 et. mdw pour les autres versions. Toutefois, l’extension .mda est ambiguë car elle correspond aussi à des Add-ins d’Access, qui sont écrits en Microsoft® Visual Basic® for Applications (VBA).

Dans le cas d’Access 2000, cette base de données système à une extension .mdw.

Cette base contient toutes les informations liées au contexte de sécurité:

  • les noms des groupes avec leur mot de passe,
  • les noms des comptes utilisateurs avec leur mot de passe,
  • les appartenances des utilisateurs aux groupes,
  • les SID (identifiant unique) des groupes,
  • les SID (identifiant unique) des utilisateurs.

Puisqu’elle contient les informations nécessaires pour récupérer le contexte de sécurité des utilisateurs et des groupes, elle est cruciale pour accéder aux données. Si elle est perdue ou corrompue, vous serez incapable de modifier ou d’afficher vos données, même si vous avez le mot de passe d’accès à la base de données.

En effet, si vous avez le mot de passe d’accès à la base de données, mais que vous n’avez plus le fichier .mdw, vous obtiendrez des messages d’erreurs lorsque vous essayerez d’ouvrir une table: « Impossible de lire les définitions. Aucune autorisation de lecture des définitions pour la table ou la requête », ou quand vous voudrez exporter les données: « Vous n’avez pas l’autorisation de copier. Pour copier cet objet, vous devez avoir l’autorisation d’accès Lire la structure. Si l’objet est une table, vous devez aussi avoir l’autorisation Lire les données ».

Dans Fichier > Utilisateurs et autorisations > Autorisations d’accès, vous serez avec l’utilisateur en cours: Administrateur (par exemple). En cliquant sur l’onglet Changer le propriétaire, tous les objets auront comme propriétaire actuel: <Inconnu>. C’est normal. Et bien évidemment, quand vous essayerez de changer de propriétaire, vous obtiendrez le message d’erreur: « Vous n’avez pas l’autorisation de changer le propriétaire. Pour changer le propriétaire d’un objet de base de données, vous devez avoir l’autorisation d’administrer celui-ci.« . C’est agaçant, hein ?

Sécurité Access à partir d’Access 2007

Access 2007, 2010 et 2013 ne disposent plus du mot de passe par utilisateurs. Malgré cette absence, la récupération des mots de passe d’Access 2007 est une opération beaucoup plus difficile que dans les versions antérieures. Elle nécessite souvent l’utilisation d’attaques par dictionnaire ou par force brute. Avec Access 2013, c’est pire encore car la protection de mot de passe a été encore plus renforcée, comme dans toute la suite Office 2013. Le mot de passe est très difficile à briser et la récupération de mot de passe Access 2013 est une tâche coûteuse.

En l’absence du fichier .mdw, vous pouvez chercher à recréer une nouvelle base de données système .mdw. Pour cela, il existe un utilitaire (WRKGADM.EXE) qui permet de le faire. Sinon, il faut passer par le menu d’Access 2000 ou 2003: Outils > Sécurité > Commande de menu de groupe de travail d’administrateur pour créer la nouvelle base de données système. Mais, pour être efficace, ce procédé suppose que vous connaissiez le nom des comptes réellement utilisés, ainsi que leur mot de passe.

Bien évidemment, j’avais enlevé tous les droits au compte Administrateur dans ma base Access, car ce compte étant archi-connu, il est attaquable. En 2000, j’avais créé des nouveaux comptes (« Venus », « Pluton », etc.) et j’avais attribué des droits aux différentes planètes sur mes tables Access (« Venus » était administrateur de la base). Mais aujourd’hui, impossible de me rappeler leurs noms et leur mot de passe.

Récupérer le mot de passe de l’utilisateur

Heureusement, l’autre fichier encore présent est le fameux .mdw. Il s’intitule COMPTES.MDW. Il a fallu utiliser une autre option d’Access Password Pro pour récupérer quasi-instantanément toutes les informations du contexte de sécurité (les noms des comptes, des groupes, les mots de passe, etc.) contenues dans le fichier COMPTES.MDW. Le mot de passe du compte Venus était « Zz999999 » (enfin presque…).

C’est presque terminé. Maintenant, il faut fournir toutes ces informations à Access pour qu’il ouvre le fichier BASE.MDB avec le bon fichier .mdw (COMPTES.MDW). L’ouverture de la base s’est faite avec la commande:

« C:Program Files (x86)Microsoft OfficeOffice14MSACCESS.EXE » BASE.MDB /Wrkgrp COMPTES.MDW /user Venus /pwd Zz999999 puis la saisie du mot de passe de la base de données (« Aa123456 ») dans la pop-up qui est apparu.

Avec ces informations, Microsoft® Access 2000 m’a laissé à nouveau administrer pleinement la base. Une sauvegarde a été faite immédiatement après…

Ultime conseil lié à la sécurité: convertissez vos bases de données Access en Microsoft Access 2013, c’est encore mieux. La sécurité est renforcée.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *