Leçon 20 : Utilisation d'Access en réseau, et protection par mot de passe

Temps nécessaire pour suivre cette leçon : Une petite demie heure

Pour suivre cette leçon, vous devez avoir suivi les leçons précédentes. Ou plus précisément, vous devez être en possession de la base de données ProFormation.mdb telle qu'elle était à la fin de la leçon précédente. Si vous n'êtes pas certain de l'avoir, vous pouvez la télécharger ici

Aperçu de cette leçon

Cette fois, nous allons voir qu'Access fonctionne en réseau : C'est à dire que vous allez pouvoir ouvrir la même base de données à plusieurs personnes en même temps.

Sommaire

  1. Théorie de l'utilisation d'un réseau de PC
  2. Impossibilité de travailler sur un même document à plus d'une personne à la fois en réseau
  3. Simulation de l'utilisation d'Access en réseau avec un seul PC
  4. Test de l'utilisation d'une même base de données simultanément sur 2 PC différents
  5. Différence entre Access et les autres produits de la gamme Office lors de l'utilisation en réseau
  6. Limites de l'utilisation d'Access dans le cadre d'un développement de grande envergure
  7. Création forcée d'un conflit d'enregistrement simultané
  8. Utilisation d'un mot de passe
  9. Le mode Exclusif et les mots de passe de la base de données
  10. Explication du fichier .LDB
  11. Marche à suivre pour la cération correcte d'un mot de passe à la base de données
  12. Suppression d'un mot de passe d'une base de données
  13. Manque de sécurité liée à l'utilisation de mots de passe sur une base de données
  14. Conseils pour appliquer un bon mot de passe
  15. Comment casser un mot de passe ?

Cette leçon ne s'adresse donc qu'aux personnes qui travaillent déjà en réseau, si je suis tout seul avec mon ordinateur, c'est un peu inutile ?

L'intérêt est largement supérieur si vous avez l'intention de travailler en réseau, bien évidemment.


Théorie de l'utilisation d'un réseau de PC

Bon, je n'ai jamais travaillé en réseau, vous pouvez m'expliquer en gros ?

Travailler en réseau signifie que dans votre entreprise, vous avez 5, 10, 20 100 (ou plus) PCs qui sont reliés entre eux avec un cablage réseau. Il y a même peut-être des informaticiens qui maintiennent ce réseau (Des administrateurs système) : Ils vérifient que tout fonctionne bien, ils ajoutent un nouvel ordinateur lorsqu'une nouvelle personne entre dans l'entreprise, Ils retirent les ordinateurs des collaborateurs qui s'en vont, etc. Mais il est aussi possible que vous travaillez dans une toute petite entreprise composées de 2 ou 3 personnes utilisant chacune un PC relié aux autres, auquel cas il n'y a pas besoin de service informatique dédié. Bref : Un réseau n'est pas grand chose de plus qu'un certain nombre d'ordinateurs reliés entre eux. Attention toutefois : Ce n'est pas parce que vous avez 2 PC à disposition que vous allez pouvoir les faire fonctionner ensemble aussi simplement : Bien que ce ne soit pas diaboliquement compliqué, il vous faudra quand même vous fournir de câbles spécifiques, et des connaissances, mêmes sommaires, en réseaux informatiques restent indispensables. Je ne vous explique pas comment créer votre propre réseau car d'une part ce serait trop long à expliquer, et ça déborderait largement du cadre de ce cours.

Le fait de relier entre eux ces ordinateurs permet par exemple de se partager une seule imprimante, ou encore de s'envoyer des messages, mais ici n'est pas le sujet. C'est surtout le partage des fichiers qui nous intéresse. Dans votre ordinateur, il y a un disque dur qui contient les programmes que vous utilisez, ainsi que les fichiers que vous créez. Ce disque dur peut être "partagé" pour que les autres ordinateurs/utilisateurs du réseau puissent y avoir accès. Par exemple, votre disque dur s'appelle C:. Votre collègue qui est dans un bureau voisin a un ordinateur avec aussi un disque dur qui s'appelle C:. Si vous avez envie de "partager" votre disque dur avec lui, chez vous, votre disque dur continuera à s'appeler C:, mais chez lui, dans son explorateur Windows, il verra apparaître une sorte de "nouveau" disque dur qui s'appellera D: (par exemple), et qui ne sera rien d'autre que votre disque dur C: à vous ! Vous suivez ?

Bon, souvent, dans les entreprises de bonne taille, ce ne sont pas les disques durs des utilisateurs qui sont partagés, mais il s'agit souvent d'un disque dur particulièrement imposant, et installé sur une machine particulièrement puissante, appelée serveur, qui n'est autre qu'un "gros PC". Sur ce serveur, le disque dur partagé s'appellera toujours C: (par exemple), mais pour les 250 ordinateurs connectés dessus, ce disque dur se "Surnommera" G: (par exemple. Les lettres peuvent évidemment changer selon les cas). C'est évidemment génial de pouvoir partager les fichiers de cette manière. Imaginez une conversation entre 2 secrétaires :

Jacqueline téléphone à Louisette, sa collègue qui travaille 2 étages plus haut :

- Allo Louisette ? Tu peux m'imprimer le rapport annuel de la société vu que c'est toi qui t'en occuppe s'il te plaît ? Je viendrai le chercher juste avant midi
- Pas besoin. Je l'ai placé sur le réseau, ce rapport. Tu le trouveras à l'emplacement suivant : G:\Rapports\Rapport mensuel 2001.DOC. Tu peux l'imprimer toi-même.
- Super ! C'est vraiment plus facile comme ça ! Je lance mon traitement de texte Word : Fichier, Ouvrir G:\Rapports\Rapport mensuel 2001.DOC. Parfait ! Je n'ai plus qu'à l'imprimer ! Fichier, imprimer... Ah oui mais non !!! J'avais oublié que mon imprimante est en rade. C'est pas grave, je n'ai qu'à l'imprimer sur l'imprimante à Gérard qui travaille dans le bureau à côté !

C'est ça le travail collaboratif !

Je comprend. Et donc, il suffit de placer la base de données sur un disque réseau pour que toute l'entreprise puisse y accéder !

C'est aussi simple que ça !


Impossibilité de travailler sur un même document à plus d'une personne à la fois en réseau

Mais je travaille déjà en réseau, et j'ai constaté que si j'ouvre un fichier Word (par exemple Rapport.DOC) et qu'une autre personne l'a déjà ouvert avant moi, je ne pouvais pas enregistrer des modifications dessus en même temps que lui !

Mais c'est normal : Imaginez : Vous ouvrez Rapport.DOC qui contient, admettons, les résultats de la société.

Une seconde après vous, sans que vous le sachiez, un de vos collègues ouvre également ce même document, et vous faites des modifications sur ce document, par exemple, vous remplacez "Frais divers : 25'000.--" par "Frais divers : 32'640.--". Dans le même instant, votre collègue change "Frais divers : 25'000.--" par "Frais divers : 16'500.--"... Et vous Enregistrez ce document en même temps ! Comment voulez-vous que Word/Windows gère ce cas de figure ??? Finalement, les frais divers seront de 32'640.-- ou de 16'500.-- ???

Eh bien 32'640.-- puisque c'est celui qui était le premier dans le rapport !

Exactement ! C'est pour ça que la première personne à entrer dans le document peut y accéder sans restriction, mais les autres utilisateurs qui voudraient l'ouvrir ne ne peuvent qu'en lecture seule. C'est parfaitement logique !

Ah... Ca devient tout à coup moins intéressant, surtout avec Access... Parce que si une seule personne peut faire des changements dans la base de données à la fois, ça perd complètement son charme !

Justement ! Access est différent des autres programmes : Son mode d'enregistrement étant particulier, il est tout à fait possible d'entrer à 2, 3, 10 ou même 100 utilisateurs en même temps (La limite théorique est de 255 utilisateurs simultanés) dans une seule et même base de données, et même dans une même table pour que tout le monde y effectue des modifications en même temps sans qu'Access ne se fâche !


Simulation de l'utilisation d'Access en réseau avec un seul PC

C'est génial ! C'est dommage que je ne puisse pas tester ça parce que je ne dispose que d'un seul PC !

Ce que vous pouvez très bien faire, si vous ne disposez que d'une seule machine, c'est ouvrir carrément 2 fois Access, et ouvrir la même base de données sur les 2 Access ouverts simultanément. ATTENTION : J'ai constaté que dans certains cas, Access refusait de s'exécuter 2 fois en même temps. Astuce : Lorsque vous avez ouvert 2 fois Access, pour que ces deux Access se partagent l'écran équitablement, placez votre souris dans une partie grise de votre barre des tâches, cliquez avec le bouton droit, et choisissez "Mosaïque verticale" . Ca aura pour effet de partager votre écran entre toutes les applications ouvertes en même temps. Libre à vous ensuite de redimensionner plus finement encore vos différentes fenêtres, et cette fois je vous laisse vous débrouiller, parce que vous n'êtes pas ici tout de même dans un cours Windows débutant, n'est-ce pas ?

Si vraiment Access refuse obstinément de s'ouvrir 2 fois en même temps, ne vous en faites pas, vous pouvez simplement lire la leçon, et de toutes façons, à partir de la leçon suivante, il ne sera plus question de réseau. Vous ne resterez donc pas perdu bien longtemps.

En bref, pour utiliser Access en réseau, non seulement vous devriez pour bien faire voir donc 2 ordinateurs reliés entre eux, mais vous devez de plus avoir un lecteur de disque dur partagé entre les 2 ordinateurs, ce lecteur étant accessible en lecture-écriture depuis les deux PC - Comme vous voyez, c'est la préparation qui est dure à appréhender, mais cette préparation est censée être faite par le responsable informatique (l'administrateur réseau).

Si vous devez vous-même monter un réseau de plusieurs PC, sachez donc, vous le constatez d'ailleurs, qu'il est nécessaire de posséder quelques connaissances dans ce domaine.

Imaginons donc que vous soyez en possession de ces quelques connaissances et que vous ayez ces 2 ordinateurs à disposition, que nous appellerons PC A, et PC B, le PC A étant celui sur lequel vous avez l'habitude de travailler.

Déplacez ou copiez votre base de données ProFormation.MDB sur un lecteur de disque dur commun aux 2 PC, accessible en lecture-écriture sur les 2 PC : C'est à dire que vous devez mettre la base de données à un endroit que vous pouvez atteindre indifféremment du PC A ou du PC B, et vous devez pouvoir faire des modifications sur la base de données depuis les 2 PC.


Test de l'utilisation d'une même base de données simultanément sur 2 PC différents

Essayons :

  1. Ouvrez ProFormation.MDB depuis le PC A
  2. Faites une petite modification (Par exemple, mettez la lettre X à la fin de "Napoléon" dans T_Celebrite)
  3. Quittez Access
  4. Allez sur le PC B
  5. Ouvrez Access depuis le PC B
  6. Ouvrez ProFormation depuis le PC B
  7. Constatez dans T_Celebrite que Napoléon s'est bien transformé en NapoléonX
  8. Enlevez le X de Napoléon, et mettez un Y à la place
  9. Quittez Access depuis le PC B
  10. Revenez sur le PC A
  11. Rouvrez ProFormation.MDB depuis le PC A
  12. Rouvrez T_Celebrite depuis le PC A
  13. Constatez que NapoléonX s'est transformé en NapoléonY : Tout va bien !
  14. Enlevez le Y de Napoléon Y
  15. Fermez Access

Tant que ce petit test n'est pas réussi, vous ne pouvez pas aller plus loin.

J'ai réussi. Bon je le faisais déjà avec d'autres documents comme des documents Word, ou même des feuilles Excel, mais comme je vous ai dit plus haut, on ne peut pas être plusieurs à ouvrir le même document en même temps...

JUSTEMENT ! Nous allons maintenant constater qu'Access se comporte différemment : Vous allez ouvrir Access et ProFormation.MDB depuis votre PC A et également depuis votre PC B.


Différence entre Access et les autres produits de la gamme Office lors de l'utilisation en réseau

Ah... Déjà là, il y a une différence avec Word et Excel, parce que quand j'ouvre ProFormation depuis le PC B, Access ne m'informe pas du tout que le même fichier (ProFormation.MDB) est déjà ouvert sur le PC A !

Effectivement. Mais ce n'est pas fini : Vous allez maintenant ouvrir T_Celebrite en mode saisie de données sur le PC A et sur le PC B. Vous voyez donc la même table depuis 2 écrans différents : Un peu comme si votre collègue et vous-même ouvriez la table en même temps.

Maintenant, dans le PC A, vous allez remplacer "Carole" (Carole Bouquet) par "Carole ABC", et vous descendez d'un enregistrement pour forcer l'écriture sur disque de votre changement. Une fois ceci fait, vous vous déplacez devant le PC B, et vous regardez : Carole est toujours Carole ... Mais... Cliquez dans Carole avec votre souris et... Carole devient instantanément CaroleABC !

Attention toutefois : Il s'agit tout de même d'un réseau ! C'est à dire qu'il faut que les 2 PC communiquent entre eux pour permettre ce tour de force ! C'est comme quand vous parlez au téléphone avec une personne qui se trouve à l'autre bout de la planète : Il se peut qu'il y ait un petit décalage dans la voix. Ici aussi, il peut se passer certains phénomènes liés à la qualité et à la vitesse du réseau !

Ainsi, il peut se passer 3 choses quand vous entrez des données dans un PC, et que vous allez voir si le changement a bien été effectué depuis l'autre PC :

Quand vous avez terminé, enlevez le ABC de Carole, pour ne pas laisser trainer des fausses données.


Limites de l'utilisation d'Access dans le cadre d'un développement de grande envergure

Est-ce bien sérieux, tout ceci ?

Ah... Bienvenue dans le monde de l'informatique !

C'est pour ça qu'il existe plusieurs types de réseau, et plusieurs sortes de systèmes de bases de données. Un système de gestion base de données Oracle ou SQL server (de gros logiciels), installés sur des machines prévues spécialement pour ça par des experts (parfois appelés MCSE : Microsoft Certified System Engineer) tournera de manière certainement plus fiable et plus prévisible que votre petit Access qui mouline sur 2 machines mises en réseau par quelqu'un qui fait ça par loisir...

Mais le prix n'est pas le même !

Et très souvent cette 2ème solution (Access) est à la fois plus économique et suffisante pour des besoins relativement réduits. Quand vous devrez gérer 2 millions de clients par 500 collaborateurs, vous reverrez sans doute votre architecture de base de données, mais je présume que vous n'en êtes pas là... ;-)

Evidemment ! A part ça, peut on quand même modifier les données d'une même base en même temps sur plusieurs PC ?

Pas de problème. Du moment que vous n'êtes pas en train de modifier le même enregistrement (le même client), Access prend en comte toutes les modifications.


Création forcée d'un conflit d'enregistrement simultané

Ah bon... Que se passerait-il si 2 utilisateurs sur 2 machines différentes modifiaient en même temps le même client d'une même table ?

Ca veut dire que vous n'êtes pas très bien organisé !

Normalement, si vous êtes plusieurs à accéder en même temps à la base de données, je suppose que vous allez attribuer des tâches différentes à chaque personne : Untel va s'occuper de changer les adresses des clients, tel autre va sortir des listes, tel autre va juste consulter la base, ou ajouter des nouveaux clients, mais vous n'allez pas vous y mettre tous à la fois à modifier les données des mêmes clients !

Non, bien sûr ! Mais admettons : Que se passerait-il ? Tout se bloque ?

Eh bien non ! Même dans un cas aussi exceptionnel, Access s'en sort bien. Nous allons faire un test pour illustrer ça. Suivez les étapes scrupuleusement :

  1. Placez-vous devant le PC A, et allez sur le client Georges Brassens
  2. Ajoutez "A" à Georges : "GeorgesA" (NE Enregistrez PAS)
  3. Placez-vous devant le PC B, et allez également sur Georges Brassens
    Georges est toujours Georges et pas GeorgesA, parce que vous n'avez pas encore enregistré sur le PC A
  4. Ajoutez "B" à Georges : "GeorgesB" (NE Enregistrez PAS)
    Vous avez maintenant 2 modifications différentes sur le même client, en même temps (pas exactement, parce qu'il vous aura fallu quelques secondes pour passer d'un PC à l'autre, mais sur le plan d'Access, les changements sont simultanés car dans les 2 cas, vous n'avez pas encore enregistré votre enregistrement - Si vous avez un peu oublié cette notion de sauvegarde, revoyez la leçon 3)
  5. Restez devant votre PC B, et Enregistrez votre enregistrement GeorgesB (SHIFT ENTER si vous aviez oublié le petit raccourci clavier). Tout va bien !
  6. Revenez devant votre PC A, et Enregistrez également votre enregistrement GeorgesA

Et voilà : Vous obtenez le message . Je vous le traduit en langage compréhensible :

"Vous étiez bien tranquillement devant votre PC A en train de modifier votre client Georges Brassens en GeorgesA Brassens... Mais vous avez été tellement lent à enregistrer votre modification que pendant ce temps-là, il y a un autre utilisateur, sur le PC B, qui a été également sur Georges Grassens... Mais comme vous n'aviez pas encore enregistré votre modification, l'autre utilisateur a donc vu Georges, et pas GeorgesA. Et, cet autre utilisateur a décidé de renommer Georges en GeorgesB !

Et comme c'est un rapide, lui, il a enregistré son GeorgesB sans même se douter que vous-même étiez en train de tenter de changer Geroges en GeorgesA ! Et maintenant ? Eh bien, comme vous vous décidez enfin à enregistrer votre GeorgesA, je me vois dans l'obligation de vous informer que l'autre utilisateur a fait un changement que vous n'avez même pas vu...

Alors voilà : Soit vous cliquez sur "enregistrer enregistrement", et dans ce cas, vos modifications prennent le pas sur l'autre utilisateur, et c'est GeorgesA qui l'emporte, ou... Vous cliquez sur "Annuler", et dans ce cas, ça veut dire que finalement, vous ne voulez pas enregistrer GeorgesA, et vous préférez laisser la priorité à l'autre utilisateur..."

Cliquez sur "enregistrer enregistrement". C'est donc GeorgesA qui l'emporte.

Si vous aviez cliqué sur "Annuler", vous auriez vu GeorgesB. Remarquez que c'aurait peut-être été plus sage : Ca vous aurait permis de visualiser ce que l'autre utilisateur a fait comme changement... (Bon, vous savez que c'est la lettre B qui a été ajoutée au prénom, mais en situation réelle, vous ne pouvez pas le savoir) ... Et puis ensuite, rien ne vous empêche de remplacer malgré tout GeorgesB en GeorgesA si vous le voulez vraiment juste après !!!

Dans tous les cas, une fois que vous avez fait cet exercice, remettez Georges tout simplement, histoire d'avoir un prénom cohérent pour ce regretté monsieur Brassens.

Mais c'est super-dangereux pour la bonne tenue de la base de données, ça !

Oui. Un couteau aussi, c'est dangereux.

Oui, mais moi, les couteaux, je les range dans un tiroir, et il n'y a que moi et mon conjoint qui pouvons les utiliser, on fait attention, et on ne laisse pas les enfants jouer avec !

Ah... Parce que votre base de données, vous comptez laisser n'importe qui faire n'importe quoi dedans, et vos enfants pourront entrer dedans quand ils veulent ???

Non... Vous avez raison ! Comme vous disiez avant, il faut un minimum de discipline...

Mais omme je vous le disais aussi, c'est un cas de figure extrêmement rare : Normalement, vous ne devriez pas être à plusieurs dans le même client en train de faire un changement de données... Mais effectivement, nous ne parlons pas de sécurité, mais bien de souplesse d'utilisation d'Access et de bon sens logique !

C'est vrai... Mais dans mon entreprise, nous avons environ 200 PC, et nous n'avons qu'un seul disque dur commun à tout le monde... Le problème, c'est que si je pose ma base de données sur ce disque, absolument tout le monde peut la voir, l'ouvrir, et même modifier, effacer, ajouter des données ! C'est ennuyeux, ça !

Ah oui, c'est le moins qu'on puisse dire. Heureusement, il y a une parade : Vous pouvez attribuer un mot de passe à la base de données !


Utilisation d'un mot de passe

Excellente idée. Comme ça, je n'ai qu'à distribuer ce mot de passe aux gens avec qui je travaille !
Ca va nous permettre de travailler en réseau tout en évitant les indiscrétions et les accidents !
Le beurre et l'argent du beurre, quoi !
Comment fait-on ?

Votre base de données est toujours ouverte dans les 2 PC. Laissez-là ouverte dans les 2 PC, mais fermez T_Celebrite dans les 2 PC.

Placez-vous devant le PC A, et allez dans le menu Outils/Sécurité/Définir le mot de passe de la base de données. Cette boîte de dialogue apparaît : . N'y faites rien.

Allez devant le PC B, et allez dans le menu Outils/Sécurité/Définir le mot de passe de la base de données. La même boîte apparait.

Sur le PC A, écrivez comme mot de passe 111, et dans la zone de confirmation, écrivez également 111

Sur le PC B, écrivez comme mot de passe 222, et dans la zone de confirmation, écrivez également 222

Ne cliquez pas sur OK !

Mais c'est idiot ce que vous me faites faire ! On est dans la même base de données ! Quel mot de passe sera retenu ? 111 ou 222 ?

Aucun des deux. C'est vrai que c'est idiot.


Le mode Exclusif et les mots de passe de la base de données

Mais ce n'est pas ça qui va désarçonner Access ! Allez devant le PC A, et cliquez sur OK. Le message suivant apparait :

Je vous traduit :

"Vous essayez d'attribuer un mot de passe à votre base de données... Mais le problème, c'est que vous n'êtes peut-être pas le seul !
En effet, il y a certains de vos collaborateurs qui ont ouvert la même base de données... (en fait, c'est vous même sur le PC B). De plus, je ne vous le dit pas dans le message, mais sur le PC B, il y a même un gars qui va essayer de mettre un mot de passe différent du vôtre (222) dans une seconde !
Enfin bref : Moi, vos histoires, je ne veux pas en entendre parler : Si vous voulez mettre un mot de passe sur votre base de données ProFormation, il faut, et c'est une condition indispensable, que vous soyez SEUL à ouvrir cette base !!! Alors, je ne veux pas savoir comment vous allez faire, vous n'avez qu'à parcourir les bureaux pour trouver les gens qui sont dans votre base de données, vous vous débrouillez comme vous voulez, mais il ne faut pas qu'il y ait 2 personnes dans la base de données si vous voulez ce mot de passe !!!"

Ah OK ! C'est tout simple... En fait c'est logique ! Je n'ai qu'à fermer la base de données sur le PC B, et alors, je pourrai mettre ce mot de passe sur le PC A !

Essayez :

  1. Allez sur le PC B, et cliquez sur Annuler pour quitter la saisie du mot de passe
  2. Fermez ProFormation sur le PC B
  3. Revenez sur le PC A
  4. Allez dans le menu Outils/Sécurité/Définir le mot de passe de la base de données
  5. Comme mot de passe, mettez 111, et confirmation : 111
  6. Cliquez sur OK

Et... Ca ne marche toujours pas... Vous vous retrouvez dans la même situation:

En fait, il faut que vous ouvriez la base de données en mode exclusif, comme indiqué... C'est à dire qu'il faut ouvrir la base de données de manière à être SUR et CERTAIN d'être ABSOLUMENT seul dans la base de données du début à la fin des opérations. Marche à suivre :

Pour commencer, quittez ProFormation.MDB de PC A et de PC B, histoire de repartir sur rien du tout.

  1. Allez devant le PC A
  2. Ouvrez Access
  3. Allez dans le menu Fichier/Ouvrir, et cherchez votre base de données ProFormation qui est sur le disque dur Commun au 2 PC
  4. Quand vous l'avez trouvée cliquez juste dessus une fois, ne l'ouvrez pas, mais choisissez "Ouvrir en exclusif" en cliquant sur la petite flèche juste à côté du bouton "Ouvrir" :
    Remarque : avec Access 97, il n'y a pas cette petite flèche à côté de "Ouvrir", mais une petite case à cocher "Mode exclusif" qu'il suffit de cocher.
    Remarque 2 : Dans l'exemple, ci dessous, c'est écrit ProCD. Vous, c'est Proformation que vous devez chercher.

Maintenant, vous êtes seul, et bien déterminé à le rester dans votre base de données ! Nous allons apporter la preuve que vous êtes seul sans qu'il soit possible de vous "rejoindre" : allez devant le PC B, et essayez simplement d'ouvrir ProFormation.MDB. Vous aurez un message du style : . Il est possible que ce message diffère selon les différentes versions d'Access. Ce message m'a été donné alors que j'utilise Access 2000 sur mon PC A et Access XP (Plus récente version que 2000) sur mon PC B. Toujours est-il qu'une fois qu'une base de données est ouverte en mode exclusif sur un PC, il est impossible de l'ouvrir sur un autre PC.

Et si par exemple, j'ouvre la base de données en mode normal sur le PC A, et que j'essaye de l'ouvrir en exclusif sur le PC B, qu'est-ce qu'il fait ? C'est le PC B qui ferme automatiquement la base de données sur le PC A ?

Pas du tout : Il ne sera simplement pas possible d'ouvrir la base de données en mode exclusif si celle-ci est déjà ouverte ailleurs.

Vous auriez à nouveau ce message d'erreur :

Ce n'est pas mal, ça !
En fait, si je veux savoir par exemple, s'il y a quelqu'un dans la base de données, je n'ai qu'a essayer de l'ouvrir en mode exclusif : Si je n'y arrive pas, c'est qu'il y a quelqu'un !

Exactement. Bon évidemment, il y a le revers de la médaille : Tant qu'il y a quelqu'un dans la base de données, vous ne pouvez pas y pénétrer en mode exclusif (pour y placer un mot de passe par exemple).

En d'autres mots, si vous avez besoin d'entrer en mode exclusif, vous allez devoir faire le tour des bureaux et demander à chaque personne de bien vouloir quitter la base de données si elle était dedans !

Ce n'est pas de tout repos : Il va vous falloir peut-être parcourir plusieurs étages, ou être confronté à des utilisateurs qui ont besoin de la base et qui ne peuvent pas la quitter comme ça, ou même des gens absents de leur bureau avec la base ouverte que vous n'oserez peut être pas fermer chez eux...

Donc, il vous faudra souvent attendre l'heure de midi ou après 18 heures qu'il n'y ait plus personne dans les bureaux !

Vous comprenez mieux maintenant pourquoi le métier d'informaticien est parfois constitué d'horaires étranges ?


Explication du fichier .LDB

Oui.. Je m'en rend compte petit à petit... Mais à part ça, puis-je savoir combien de personnes il y a dans la base de données, et qui c'est ?

Rien n'est prévu directement dans Access pour le connaître.

Mais dès que vous ouvrez une base de données (ProFormation.MDB par exemple), il se crée automatiquement un fichier appelé ProFormation.LDB (LDB = Log DataBase) qui est sensé contenir qui a ouvert la base de données. ce petit fichier n'existe que s'il y a au moins un utilisateur qui a ouvert la base de données.

Ce petit fichier LDB est automatiquement effacé dès que la dernière personne a fermé la base de données :

On ne peut pas visualiser facilement son contenu.

Il existe toutefois quelques utilitaires avancés d'Access permettant de lire ce qu'il y a exactement dans ce fichier, mais nous n'allons pas en dire plus. Ce fichier LDB vous avait peut-être intrigué, vous le voici expliqué...

Parfait, parfait ! Mais ou en étions nous déjà avant tout ce mic mac ?
Ah oui ! Nous étions en train de nous battre avec les mots de passe.

Oui. C'est à partir de là que nous avons été confronté au mode exclusif. Maintenant que tout ceci n'a plus de secret pour vous, vous allez pouvoir enfin installer un mot de passe sur votre base de données.


Marche à suivre pour la cération correcte d'un mot de passe à la base de données

  1. Fermez la base de données ProFormation dans les 2 PC
  2. Ouvrez ProFormation sur le PC A en mode exclusif
  3. Allez dans le menu Outils/Sécurité/Définir le mot de passe de la base de données
  4. Mot de passe : 111, Confirmation : 111
  5. Cliquez sur OK
  6. Le mot de passe est installé. Mais vous êtes toujours en mode exclusif, et personne ne peut entrer dans la base de données : Quittez la base de données
  7. Allez sur le PC B
  8. Ouvrez ProFormation.MDB. maintenant, vous allez devoir fournir le mot de passe que vous venez de définir sur l'autre PC (111) :
  9. Ecrivez 111, et cliquez sur OK

Suppression d'un mot de passe d'une base de données

Parfait. Et si je veux enlever ce mot de passe ?

C'est le menu Outils/Sécurité/Annuler le mot de passe de la base de données.

Attention : Vous DEVEZ également être en mode exclusif pour l'annuler.

Vous n'avez pas besoin d'être forcément sur le PC qui a servi à installer le mot de passe pour le retirer. Essayez à titre d'exercice d'enlever ce mot de passe depuis le PC B

(Lors de l'annulation, vous devrez confirmer le mot de passe qui était installé, afin d'éviter qu'un petit malin profite d'une absence de 5 minutes alors que la base était ouverte pour retirer le mot de passe et ainsi pouvoir ouvrir la base de données depuis son propre poste de travail)

Oui. D'ailleurs, il faudrait éviter d'aller aux toilettes et de laisser la base de données ouvertes, car n'importe qui pourrait passer par là, et changer les données dans les tables !

Eh oui... Mais ça c'est un problème humain !

Qu'est ce que vous voulez faire contre ça ? A part sensibiliser les utilisateurs à la sécurité, comme je suis en train de le faire avec vous ...


Manque de sécurité liée à l'utilisation de mots de passe sur une base de données

Toujours pour parler d'intrusion, si quelqu'un essaie de trouver le mot de passe de la base de données, combien d'essais a-t-il droit avant que tout se bloque complètement ?

Il n'a pas de limite.

Il peut essayer autant qu'il veut ! Si c'est l'heure de midi, il a une heure pour essayer tous les mots de passe qui lui passent par la tête. Et quand vous rentrerez de la pause de midi, Access ne vous informera absolument pas qu'un intrus a essayé d'entrer dans votre base de données !

De cette manière, il pourra essayer tous les jours à midi. Et s'il veut vraiment entrer dans votre base, il va carrément la copier sur une disquette et passer ses nuits entières a essayer de découvrir votre mot de passe depuis chez lui !

Mais c'est vraiment dangereux cette histoire !

Ca s'appelle des trous de sécurité.

C'est comme ça. Dès que vous entrez dans le monde de l'informatique pour de bon, vous ne devez pas ignorer le côté obscur de celle-ci ! Donc, par exemple, une bonne manière de se prémunir contre les intrus, c'est déjà d'éviter de coller votre mot de passe sur le côté de votre écran ! A quoi sert d'avoir un système informatique ultra-sécurisé s'il suffit d'entrer dans un bureau pour découvrir un mot de passe.

Ne collez pas non plus votre mot de passe sous le clavier ! Tout le monde connait cette cahette !

Si vous êtes une femme, ne le laissez pas traîner dans votre sac à main que vous avez l'habitude de mettre dans le tirour de droite du haut de votre bureau que vous ne fermez pas à clé ! Tous ces trucs sont connus de tous les pirates depuis la nuit des temps !

Et pendant qu'on y est, si vous vous appelez Martine Brunner, que vous êtes née le 4 janvier 1967 à Barcelone, que votre chat s'appelle Lucas, et votre fiancé Eric, ces mots de passe sont ABSOLUMENT à proscrire :

martine Martine MARTINE brunner BRUNNER Brunner MartineBrunner MARTINEbrunner mbrunner mbrunn lucas LUCAS SACUL LuCa LucasEric CIRE éric ecricmartine 4167 040167 0411967 1967041 barc barcel barcelone barcelonelucas barceloneEric BARCéric barcelone4167, etc.

Ce sont les PREMIERS mots de passe que n'importe quel intrus qui vous connait un tout petit peu va essayer ! Il faut moins de 30 minutes pour essayer tout ça ! Ce sont de très mauvais mots de passe


Conseils pour appliquer un bon mot de passe

Mais alors, c'est quoi un mot de passe introuvable ?

C'est un mot de passe qui n'a ni queue ni tête. En voici quelques uns que vos agresseurs ne sont pas prêts de trouver :

JH7767too
4Wj8866E
ppKp0776tRRuZ

Je n'arriverai jamais à me souvenir de tels mots de passe ! Surtout si vous me déconseillez de les noter quelque part !

Ce que vous pouvez faire, c'est passer un bon moment à essayer de trouver un mot de passe bien difficile, et à le mémoriser. Vous emploierez ainsi toujours le même, que ce soit pour protéger votre base de données, sur vos cartes de crédit, etc...

Autrement, vous pouvez utiliser des moyens mnémotechniques. Vous aimez le chocolat ?

ShokkolaMIAMMIAM sera dur à trouver.

Vous pratiquez le tennis ?

rakkettesanprass

Vous appréciez la musique classique ?

1bach2mozart3vivaldi

Ou alors, gardez une phrase en tête, et appliquez les premières lettres de cette phrase. Par exemple :

"Je m'appelle Brigitte Dupont et je suis née le 4 décembre 1971"

devient :

JMABDEJSNL4121971

ça c'est à la fois du solide et du difficile à trouver ! Ou encore :

"Je me souviendrai toujours des deux petites filles perdues sur le bord de l'autoroute"

devient

Jmstd2pfpslbdla


Comment casser un mot de passe ?

Oui. Avec un minimum de précautions, on peut se sentir en sécurité

Quelque peu... Mais il faut que je vous avoue qu'il existe des craqueurs de mots de passe... Ce sont des programmes automatiques qui essaient de retrouver des mots de passe de différents programmes (Word, Excel, Access, Windows NT, etc..). Vous voulez prendre peur ? Visitez www.lostpassword.com, vous ne serez pas déçu !

D'ailleurs je propose moi-même un programme de cassage de mots de passe...

C'est monstrueux ! On ne peut jamais se sentir en sécurité alors ?

Eh non... Mais les quelques principes de précautions énoncés plus haut vont déjà suffire à repousser pas mal d'attaques. Vous avez vu : Il y a un facture humain immense : Un post-it, un mot de passe trop facile, un ordinateur volé, et pouf ! plus rien. Eh oui : Ca déborde largement du cours Access, mais on peut imaginer que quelqu'un efface purement et simplement la base de données du disque dur ! C'est à vous de prévoir des copies de sécurité !

On ne peut pas rêver d'une sécurité absolue alors ?

Ah si ! Ou en tout cas on peut s'en approcher ! Mais bonjour les coûts !

C'est comme chez vous : Vous pouvez empêcher vraiment les malfrats d'entrer chez vous : alarmes, portes blindées, agent de sécurité, vitres anti-balles... Mais allez-vous supporter les coûts engendrés ? Non ! Vous préférez simplement fermer la porte à clé quand vous vous absentez, et tant pis si on vous cambriole quand même !

Dernière chose : Est-il possible d'attribuer un mot de passe non pas à la base de données tout entière, mais seulement à une table ?

Oui, mais c'est l'objet d'un chapitre ultérieur.

En fait il est possible de limiter les tables de manières à empêcher tel ou tel utilisateur, ou tel ou tel groupe d'utilisateurs d'écrire dedans, de supprimer des données, d'en ajouter, et ceci sera également valable pour les requêtes, les formulaires et les états, mais c'est beaucoup trop compliqué pour l'instant.

Pour jeter un premier coup d'oeil si vous le désirez vraiment, allez dans Outils/Sécurité/Gestion des utilisateurs et des groupes, ainsi que Outils/Sécurité/Autorisations d'accès

Bon... Hem... On peut résumer ?

Access est prévu pour fonctionner en réseau : C'est à dire que plusieurs utilisateurs peuvent, en même temps, ouvrir la même base de données, pour autant que la base de données se trouve sur un endroit du réseau accessible par tout le monde, et que chaque utilisateur possède Access sur son ordinateur. J'en profite pour préciser qu'il n'est pas légal d'acheter une seule fois Access pour ensuite l'installer sur chaque poste de travail, même si c'est techniquement possible sans problème. Il faut bien acheter un Access par poste de travail pour rester dans la légalité.

Afin de sécuriser notre base de données, il est possible de donner un mot de passe à celle-ci, de manière à pouvoir poser la base de données sur un disque réseau accessible à tout le monde, mais qu'elle ne soit visible que par les gens qui ont ce mot de passe. Pour définir un mot de passe, il est nécessaire que la base de données soit ouverte en mode exclusif, sinon, la création de ce mot de passe sera impossible.

A part ces considérations techniques, pensez bien qu'un mot de passe facile à trouver est un mauvais mot de passe, que les ordinateurs peuvent être volés, ou les diques durs peuvent flancher. D'autre part, le réseau est un processus physique et logique, ce qui fait que la synchronisation entre les postes de travail ne sont pas toujours faites dans la seconde. Ceci pour dire que dès le moment ou nous parlons d'utilisation de bases de données en réseau, et donc de partage de données importantes, il est indispensable de prendre en compte les différents aspect de la sécurité : Malveillance, distraction, problèmes purement techniques...

Avez-vous bien compris ?

  1. Plusieurs utilisateurs peuvent accéder à une même base de données seulement si :
    a. Elle est posée sur un lecteur de disque dur accessible par les utilisateurs qui désirent ouvrir la base de données ***
    b. La base de données est ouverte en mode exclusif
    c. La base de données n'a pas de mot de passe
    d. La base de données est posée sur un serveur Windows 2000 Server ou Windows NT 4

  2. Une base de données appelée Magasin.MDB est ouverte en mode exclusif par Marcel.
    Roger tente alors de l'ouvrir depuis chez lui :

    a. Il peut SEULEMENT s'il l'ouvre également en mode exclusif
    b. Il peut SEULEMENT s'il ne l'ouvre PAS en mode exclusif
    c. Il peut SEULEMENT s'il l'ouvre en mode exclusif ET en lecture seule
    d.
    Ce n'est simplement pas possible ***
  3. Marcel ouvre Magasin.MDB en mode non-exclusif. Il va dans T_Client, recherche Paul DuponT, et le transforme en Paul DuponD, puis ferme la table.
    Juste après, Marcel ouvre Magasin.MDB, va dans T_Client, recherche Paul Dupont et ne le trouve pas...

    a. C'est parce qu'il doit d'abord fermer Magasin.MDB avant de le rouvrir, puis de rechercher
    b. C'est parce que le réseau n'a pas eu le temps de rafraîchir les données
    c. C'est parce que le système de réseau d'Access efface temporaiement les données dernièrement modifiées avant de les remettre
    d.
    C'est normal puisqu'il s'appelle Paul DuponD maintenant ***
  4. Combien d'essais a-t-on droit pour trouver un mot de passe sur une base de données ?
    a. 2
    b. 3
    c. 5
    d. plus que 5 ***

  5. Une base de données est protégée par mot de passe, et posée sur un lecteur de réseau.
    Un petit malin a essayé plusieurs mots de passe, et finalement est tombé sur le bon ! Comment peut-on savoir qu'il y a eu une instrusion ?

    a. Outils/Sécurité/Détection des intrusions
    b. Dès la prochaine ouverture de la base de données, un message d'avertissement précisera que plusieurs mots de passe erronés ont été essayés
    c. Tout ce qu'on peut faire, c'est constater que des enregistrements ont été modifiés, ou alors, dans l'explorateur Windows, avant d'ouvrir la base de données, regarder la date du dernier accès à ce fichier ***

  6. Quelle est l'utilité du fichier .LDB ?
    a. Tenir un journal des faux mots de passes qui ont été essayés
    b. Recenser la liste des utilisateurs qui ouvrent la base de données en même temps ***
    c. Empêcher l'installation d'une même version d'Access sur 2 PC différents si on n'a pas acheté 2 licences
    d. C'est une copie de sécurité de la base de données MDB

Pour voir les solutions, il vous suffit de sélectionner le questionnaire ci-dessus : 3 petites étoiles *** apparaîtront en face des bonnes réponses.

Exercice

L'exercice proposé ici est assez simple :

  1. Créez une nouvelle base de données appelée Protection.MDB, que vous placerez sur un lecteur de réseau accessible aux 2 PC que vous avez à disposition (si c'est le cas...)
  2. Créez-y une table T_Client avec seulement 2 champs : IDClient, en NuméroAuto et Prenom, en texte
  3. Ouvrez cette base de données également sur l'autre PC
  4. Ouvrez T_Client sur les 2 PC en mode saisie de données
  5. Sur le PC A : Créez un premier client : "Marcel" (il sera automatiquement numéroté 1). ne l'enregistrez pas
  6. Allez sur le PC B : Créez également un premier client appelé "Roger"
  7. Que constatez-vous ?
  8. Mettez ensuite le mot de passe ABCD sur cette base de données, et et testez si vous pouvez bien réouvrir cette base de données depuis les 2 PC et s'il vous demande bien chaque fois un mot de passe
  9. Retirez le mot de passe

Visualisez les réponses ici

Si vous n'êtes pas tout à fait certain d'avoir suivi correctement toutes les étapes de cette leçon, vous avez la possibilité de télécharger ici la version de ProFormation.mdb exactement dans l'état ou elle devrait être à la fin de cette leçon.

Avez-vous une question technique concernant cette leçon ? Cliquez ici !
Une remarque sur cette leçon ? Un problème ? Une erreur ? une ambiguité ? Soyez gentil de m'en informer