http://www.info-3000.com/access/supportdecours/lecon20/lecon20.htm

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

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 procd.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

Résumé de la leçon précédente

La dernière leçon consistait à bien comprendre l'utilisation des filtres et des tris, ainsi que la recherche et le remplacement. Nous avons vu à quel point il était important d'avoir des données cohérentes pour pouvoir s'y retrouver, surtout si la base de données devient d'une taille conséquente.

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.

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 ?

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

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. Vous avez même peut-être des informaticiens qui maintiennent ce réseau : C'est à dire qu'ils regardent que tout fonctionne bien, qui ajoutent un nouvel ordinateur lorsqu'une nouvelle personne arrive, qui enlèvent les ordinateurs lorsque certaines personnes s'en vont, etc. Mais il est aussi possible que vous travaillez dans une toute petite entreprise avec 2 ou 3 personnes avec chacune d'entre elle qui utilise un PC relié aux autres, auquel cas, il n'y a pas besoin de service informatique. Enfin bref : Un réseau n'est pas grand chose d'autre qu'un certain nombre d'ordinateurs qui sont 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 que ça : Bien que ce ne soit pas diaboliquement compliqué, il vous faudra quand même vous fournir d'un câble qui sert à ça, et des connaissances, mêmes sommaires, en réseaux informatiques sont indispensables. Je ne vous explique pas comment faire car d'une part ce serait trop long à expliquer, et ça déborderait largement du cadre de ce cours.

Le fait de les relier entre eux permet par exemple d'utiliser 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 est ici intéressant. Dans votre ordinateur, vous avez un disque dur qui contient les programmes que vous utilisez, ainsi que les fichiers que vous créez (Mes Documents par exemple). Eh bien, ce disque dur peut être "partagé" pour que les autres ordinateurs du réseau puissent y avoir accès. Par exemple, vous avez un disque dur qui 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 de s'appeler C:, mais chez lui, dans son explorateur Windows, il verra apparaître un "nouveau" disque dur qui s'appellera D: (par exemple), qui ne sera rien d'autre que votre disque dur C: à vous !

Bon, souvent, dans les entreprises de bonne taille, ce ne sont pas les disques durs des utilisateurs qui sont partagés, mais c'est souvent un disque dur qui est particulièrement gros, et placé 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 PC connectés dessus, ce disque dur s'appellera G: (par exemple. Les lettres peuvent évidemment changer). C'est génial de pouvoir partager les fichiers de cette manière. Imaginez une conversation entre 2 secrétaires :

Jacqueline téléphone à Louisette, qui est 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 mis sur le réseau. Tu le trouveras sur le disque G:\Rapports\Rapport mensuel 2001.xls. Tu peux l'imprimer toi-même.
Super ! C'est vraiment plus facile comme ça. Alors je vais dans Word : Fichier, Ouvrir G:\Rapports\Rapport mensuel 2001.xls. 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é puisq!

Eh voilà ! 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 tout le monde puisse y accéder !

Oui. C'est aussi simple que ça.

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ègue 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êmne temps ! Comment voulez-vous que Windows gère ce cas de figure ??? Finalement, les frais divers seront de 32'640.-- ou de 16'500.-- ???

Ben... 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 entrer sans autre, mais les autres personnes qui voudraient l'ouvrir ne peuvent l'ouvrir 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 dans une même base de données, et même dans une même table pour que tout le monde y fasse des modifications en même temps sans qu'Access dise quoi que ce soit !

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

Désolé... J'avais bien pensé à vous en essayant d'ouvrir 2 fois Access, et 2 fois la même base de données, avec Access 97, c'est possible, mais Access 2000 ne se laisse pas faire. Les points suivants supposent que vous disposez de 2 PC en réseau, avec Access installé sur chacun d'eux. Si vous n'êtes pas dans ce cas, 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.

Dès cet endroit, vous ne pouvez continuer à suivre la leçon en pratique que si vous disposez de 2 PC reliés entre eux avec Access sur chacun d'eux

Non seulement ça, mais vous devez de plus avoir un lecteur de disque dur partagé entre les 2 PC, 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 d'avoir 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 votre base de données ProCD.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. Testez :

  1. Ouvrez ProCD.MDB depuis le PC A
  2. Faites une petite modification (Par exemple, mettez un 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 ProCD 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 ProCD.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 ProCD.MDB depuis votre PC A et depuis votre PC B.

Ah... Déjà là, il y a une différence avec Word et Excel, parce que quand j'ouvre ProCD depuis le PC B, Access ne m'informe pas du tout que le même fichier (ProCD.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 rapidement 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, même si c'est un réseau tout bête, composé de seulement 2 PC !

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.

Hmmm... Est-ce bien sérieux, tout ceci ?

Ah... Bienvenue dans le monde de l'informatique ! C'est pour ça qu'il existe plusieurs sortes de réseau, et plusieurs sortes de systèmes de bases de données. Une base de données de type Oracle ou SQL server (de gros systèmes de bases de données), installées sur des machines montées 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 Access qui tourne 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 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 dedonnées, mais je présume que vous n'en êtes pas là... ;-)

Evidemment ! Ban à part ça, on peut quand même imaginer qu'on modifie les données 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.

Et si on est deux à changer le même client exactement en même temps ?

Ca veut dire que vous n'êtes pas très bien organisés... 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 tout de même !

Non, bien sûr ! Mais admettons : On est dans des bureaux différents, et, pas de chance, on change les données du même client en même temps... Que se passe-t-il ? ça fait tout planter ?

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 SAUVEGARDEZ PAS)
  3. Placez-vous devant le PC B, et allez sur le client Georges Brassens
    Georges est toujours Georges et pas GeorgesA, parce que vous n'avez pas encore sauvegardé
  4. Ajoutez B à Georges : GeorgesB (NE SAUVEGARDEZ PAS)
    Vous êtes maintenant dans la situation ou vous avez 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 sauvegardé votre enregistrement - Si vous avez un peu oublié cette notion de sauvegarde, revoyez la leçon 3)
  5. Restez devant votre PC B, et sauvegardez votre enregistrement GeorgesB (SHIFT ENTER si vous aviez oublié). Tout va bien
  6. Revenez devant votre PC A, et sauvegardez é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é telleemnt lent à sauvegarder 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 sauvegardé votre modification, l'autre utilisateur a donc vu Georges, et pas GeorgesA. Et, cet utilisateur a lui, décidé de changer Georges en GeorgesB ! Et comme c'est un rapide, lui, il a sauvegardé son GeorgesB sans même se douter que vous tentez de changer Geroges en GeorgesA ! Et maintenant ? Eh bien, comme vous vous décidez enfin à sauvegarder 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 "Sauvegarder 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 "Sauvegarder enregistrement". C'est donc GeorgesA qui l'emporte.

Si vous aviez cliqué sur "Annuler", vous auriez vu GeorgesB. Remarquez que c'était peut-être plus sage : Comme ça, ça vous aurait permis de voir 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 !!!

Bon, 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 cher monsieur Brassens.

Mais c'est super-dangereux, ç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 d'ordre...

Eh oui... Comme je vous le disais, c'est un cas de figure extrêmement rare : Normalement, vous ne devriez pas être 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... Mais le problème, c'est que si je met ma base de données sur ce disque, absolument tout le monde peut la voir, l'ouvrir, et même changer 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 !

Ah oui ! Excellent !!! Comme ça, je n'ai qu'à donner ce mot de passe aux gens avec qui je travaille ! ça va nous permettre de travailler en réseau, mais en évitant les indiscrétions ! 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.

Allez 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, ecrivez 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 faites pas OK !

Mais c'est idiot ce que vous me faites faire ! On est dans la même base de données ! Ce sera quel mot de passe qui sera retenu ???

Aucun. C'est vri que c'est idiot. 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 de mettre 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 à 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), mais bon, il y a peut être encore d'autres personnes sur la base de données. En 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 ProCD, il faut, et c'est une condition sine qua non, que vous soyez SEUL à ouvrir cette base !!! Alors, je ne veux pas savoi 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 qua 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 ProCD 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 confoirmation : 111
  6. Cliquez sur OK

Et... Ben non... Vous vous retrouvez devant la même boîte qu'avant :

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 ProCD.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 ProCD 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.

Maintenant, vous êtes seul, et bien déterminé à le rester dans votre base de données ! Nous allons donner la preuve que vous êtes seul sans qu'il soit possible de vous "rejoindre" : Allez devant le PC B, et essayez simplement d'ouvrir ProCD.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. Efin, 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 : (Encore une fois, ce message d'erreur peut différer selon les versions d'Access)

C'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 qulqu'un dans la base de données, vous ne pouvez pas y pénétrer en mode exclusif (pour y mettre un mot de passe par exemple). En d'autres mots, si vous avez besoin d'en entrer en mode exclusif, vous allez devoir faire le tour des bureaux et demander tour à tour à chaque personne de quitter votre base de données si elle était dedans ! Mais ce n'est pas facile : Il va 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, bien souvent, il vous faudra attendre l'heure de midi ou après 18 heures qu'il n'y ait plus personne dans les bureaux pour faire ce que vous avez à faire ! Vous comprenez mieux maintenant pourquoi le métier d'informaticien est parfois ponctué d'horaires de fous ?

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

Rien n'est prévu dans Access pour le savoir. Mais dès que vous ouvrez une base de données (ProCD.MDB par exemple), il se crée automatiquement un fichier appelé ProCD.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. Il est automatiquement effacé dès que tout le monde a fermé la base de données :

Mais on ne peut pas le visualiser facilement. Il existe toutefois quelques utilitaires avancés d'Access qui permettent 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 :

  1. Fermez la base de données ProCD dans les 2 PC
  2. Ouvrez ProCD 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 ProCD.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

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

C'est 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. Et vous n'avez pas besoin d'être sur le PC qui a installé le mot de passe pour l'enlever. 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 en tout cas, 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 ...

Toujours pour parler d'intrusion, si quelqu'un essaie de trouver le mot de passe de la base de données, il a droit à combien d'essais 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 passe par la tête pendant que tout le monde va manger. 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 ! Comme ça, 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 !

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 ça 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 ! 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

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 ?

1bac2mozzar3vivaldyyy

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 http://www.lostpassword.com/, vous ne serez pas déçu !

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 sin on vosu 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 tout autre chapitre. 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, 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 tourner 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.

Afin de sécurisr 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, 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, parce que sinon, la créaation 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 sysnchronisation 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. Il n'y a pas vraiment de manière de le savoir : 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 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 le sauvegardez 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. Returez 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 procd.mdb exactement dans l'état ou elle devrait être à la fin de cette leçon.

Aperçu de la leçon suivante

Lors de la prochaine leçon, nous allons aborder le 2ème grand objet d'Access : Les requêtes. Vous allez petit à petit vous rendre compte de la puissance phénoménale des requêtes : Vous allez pouvoir extraire, trier et calculer vos données qui sont dans vos tables avec une puissance et une souplesse incroyable !