Vous êtes sur la page 1sur 34

Comprendre et mettre en oeuvre la scurit sous Microsoft Access

Par Fabrice Constans

Date de publication : 5 janvier 1999 Dernire mise jour : 1 octobre 2009

Ce tutorial traite des moyens de scuriser une application Microsoft ACCESS. Nous ne traiterons que la scurit d'applications de type mdb utilisant le moteur de base de donnes propritaire (JET) de Microsoft ACCESS. Nous n'aborderons pas les pages d'accs aux donnes ni les applications bases sur le moteur SQL Server ou via ODBC.

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

I - Introduction..............................................................................................................................................................4 I-A - Avertissement................................................................................................................................................. 4 II - Architecture............................................................................................................................................................ 4 II-A - Fichier unique................................................................................................................................................4 II-B - Fichier Serveur (Pseudo client serveur)....................................................................................................... 5 III - Scurit Systme.................................................................................................................................................. 5 III-A - Concept - Mthode...................................................................................................................................... 5 III-B - Utilit des accs et fichier ldb..................................................................................................................... 6 IV - Scurit applicative...............................................................................................................................................6 IV-A - Mthode Compilation MDE..........................................................................................................................6 IV-A-1 - Contraintes.......................................................................................................................................... 6 IV-A-2 - Gnrer un fichier MDE......................................................................................................................7 IV-B - Mthode Mot de passe................................................................................................................................8 IV-B-1 - Mot de passe au dmarrage.............................................................................................................. 8 IV-B-1-a - Mettre en place ce mot de passe.............................................................................................. 8 IV-B-1-b - Retirer le mot de passe..............................................................................................................9 IV-C - Mthode Mot de passe sur le code.......................................................................................................... 10 V - Bases de la Scurit utilisateur...........................................................................................................................11 V-A - Thorie........................................................................................................................................................ 11 V-B - Dfinition et organisation des groupes, utilisateurs, droits......................................................................... 12 V-B-1 - Groupe de travail............................................................................................................................... 12 V-B-2 - Groupe d'utilisateurs.......................................................................................................................... 12 V-B-3 - Compte d'utilisateur............................................................................................................................12 V-B-4 - Droits.................................................................................................................................................. 13 V-B-5 - Objets................................................................................................................................................. 13 V-B-6 - Hritage.............................................................................................................................................. 13 V-B-7 - Propritaire......................................................................................................................................... 14 VI - Groupe de travail................................................................................................................................................14 VI-A - Dmonstration............................................................................................................................................14 VI-B - Cration d'un groupe de travail................................................................................................................. 16 VII - Groupes d'utilisateurs........................................................................................................................................ 19 VII-A - Dfinition des groupes d'utilisateurs.........................................................................................................19 VII-B - Cration de groupes................................................................................................................................. 20 VII-C - Suppression de groupes.......................................................................................................................... 21 VIII - Droits d'accs................................................................................................................................................... 21 VIII-A - Droits et dpendances.............................................................................................................................21 VIII-B - Groupes des utilisateurs..........................................................................................................................22 IX - Les comptes utilisateurs..................................................................................................................................... 22 IX-A - Cration des comptes................................................................................................................................22 IX-A-1 - Dfinir les mots de passe des comptes........................................................................................... 23 IX-B - Affectation des comptes............................................................................................................................ 23 IX-C - L'administrateur un cas particulier.............................................................................................................24 IX-E - Activer les comptes................................................................................................................................... 25 IX-D - Propritaire................................................................................................................................................ 26 X - Mots de passe et dgradation.............................................................................................................................27 X-A - Les autres objets........................................................................................................................................ 29 XI - Tests....................................................................................................................................................................29 XI-A - Avec le fichier MDW scuris................................................................................................................... 29 XI-B - Avec le fichier MDW standard...................................................................................................................30 XII - Les requtes et la protection.............................................................................................................................30 XII-A - Plus loin avec ce type de requte............................................................................................................31 XIII - Codes, SQL et astuces.................................................................................................................................... 31 XIII-A - Fichier MDW et options de dmarrage................................................................................................... 31 XIII-B - Scurit et code VBA.............................................................................................................................. 31 XIII-B-1 - Changement du mot de passe de la base de donnes courante................................................... 31 XIII-B-2 - Changement du mot de passe de l'utilisateur courant................................................................... 31 XIII-B-3 - Renvoi le nom de l'utilisateur ACCESS courant.............................................................................31 XIII-B-4 - Renvoi le nom de l'utilisateur WINDOWS courant..........................................................................32
-2-

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

XIII-C - Scurit et DAO...................................................................................................................................... 32 XIII-C-1 - DAO - Crer un groupe.................................................................................................................. 32 XIII-C-2 - DAO - Crer un utilisateur..............................................................................................................32 XIII-C-3 - DAO - Suppression Groupe............................................................................................................32 XIII-C-4 - DAO - Suppression Utilisateur........................................................................................................33 XIII-C-5 - DAO - Affecter un utilisateur un groupe...................................................................................... 33 XIII-B-6 - DAO - Lister les groupes et utilisateurs..........................................................................................33 XIII-D - SQL et la scurit................................................................................................................................... 34 XIV - Liens importants............................................................................................................................................... 34 XV - Remerciements..................................................................................................................................................34

-3-

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

I - Introduction
Il existe plusieurs mthodes pour scuriser une application Microsoft ACCESS. Elles sont indpendantes et souvent complmentaires. Nous allons expliquer chacune d'elle et proposer un exemple pour sa mise en oeuvre.

I-A - Avertissement
L'utilisation de la touche F1 est vivement conseille tous les stades de l'utilisation d'ACCESS. L'amlioration constante de l'aide en fait un partenaire de choix dans l'apprentissage permanent d'ACCESS. Personnellement, je ne peux m'en passer, ne serait-ce que pour mmoire. Avant d'effectuer les manipulations dcritent dans ce tutoriel veillez faire une sauvegarde des fichiers de votre application.

II - Architecture
Pour comprendre la scurit nous devons faire un bref rappel des types d'architecture d'application possibles avec Microsoft ACCESS.

II-A - Fichier unique


Dans ce type d'architecture les donnes (tables) et l'interface (formulaires, tats, requtes, code, macro) sont dans le mme fichier. Il est employ par de nombreux utilisateurs de Microsoft ACCESS pour des applications personnelles et mono-utilisateur. Chaque utilisateur se connecte l'espace de partage et lance le mme fichier. Notez que la zone de partage peut tre situe sur un serveur ddi ou poste utilisateur ayant un rpertoire en partage.

Architecture fichier unique Bien que ce fichier puisse tre partag et donc tre accessible plusieurs utilisateurs, il est fortement dconseill de l'employer cet effet. Les accs sont fortement ralentis ; L'infrastrucutre surcharge le rseau ; Les mthodes de conception base de tables temporaires deviennent lourdes grer ; Le blocage d'un utilisateur peut se rpercuter sur l'ensemble.

-4-

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

II-B - Fichier Serveur (Pseudo client serveur)


Dans cette architecture les tables sont spares de l'interface et le fichier de l'interface (frontal) est install sur chaque poste client. Le fichier de donnes (dorsal) est en partage et les tables sont lies par un attachement dans chaque fichier frontal.

Architecture fichier serveur Celle-ci est conseille pour les applications ayant une forte charge (plus d'un utilisateur simultan/volume de donnes important). C'est cette dernire que nous prendrons comme exemple pour mettre en place les diverses scurits.

III - Scurit Systme


Bien que ne faisant pas partie de Microsoft Access mais des systmes d'exploitation drivs de NT (NT 3.51 et 4, Windows 2000 et XP) nous ne pouvions pas faire l'impasse sur cet aspect de la protection.

III-A - Concept - Mthode


La scurit systme permet entre autre de controler les accs aux rpertoires. Elle est mise en place le plus souvent dans le cadre d'une application partage ou sur des espaces de stockages multi-utilisateurs. Une fois configure seul l'utilisateur dclar aura accs au rpertoire et aux fichiers prsents. Les utilisateurs de l'application doivent avoir les accs systmes suivants sur l'ensemble des rpertoires de l'application : Cration, Modification, Suppression.

Dans le cas d'une application "fichier serveur" les utilisateurs doivent avoir accs aux 2 rpertoires avec les droits indiqus prcdemment: Le rpertoire contenant l'application appele Frontale. Le rpertoire contenant le(s) fichier(s) de donnes appel(s) Dorsal(s).

-5-

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

III-B - Utilit des accs et fichier ldb


Pourquoi avoir autant d'accs est si important pour l'utilisation d'une application ? Un fichier est cr dans le rpertoire chaque accs l'un des fichiers d'une application, ce comportement est valable pour toute application quelque soit l'architecture et le nombre d'utilisateurs. Les fichiers crs portent le nom du fichier Microsoft ACCESS qui est ouvert (mdb, mde) suivi de l'extension ldb (Lock file for Access DataBase). Par exemple : Pour le fichier Monapplication.mdb le fichier portera le nom de Monapplication.ldb. Ce fichier contient des informations importantes : l'identification unique de l'utilisateur connect et non du poste accdant la base. Le tableau suivant dresse les actions simplifies opres sur les fichiers Ldb dans le cadre de l'utilisation d'une application de type "fichier serveur" par plusieurs utilisateurs. Les fichiers applicatifs portent les noms respectifs de application.mdb (ou mde) pour la partie applicative et donnes.mdb pour la partie contenant les donnes. fichier Ldb frontal : fichier ldb dorsal : application.ldb donnes.ldb Le premier utilisateur ouvre cration du fichier, l'utilisateur aucun effet l'application est inscrit dans le fichier ldb. Le premier utilisateur accde table rsidente : aucun effet table attache : cration du une table fichier ldb sur le fichier frontal Un deuxime utilisateur se modification du fichier ldb aucun effet connecte (l'utilisateur est inscrit) Le premier utilisateur ferme dsincription de l'utilisateur suppression du fichier ldb l'application dans le fichier ldb Le deuxime utilisateur table rsidente : aucun effet table attache : cration du accde une table fichier ldb sur le fichier frontal Le deuxime utilisateur table rsidente : aucun effet suppression du fichier ldb n'accde plus la table Le deuxime utilisateur se suppression du fichier ldb aucun effet dconnecte Dans de rares cas il arrive que le fichier ldb ne soit pas supprim automatiquement par Microsoft ACCESS la sortie du dernier utilisateur, dans ce cas vous pouvez le supprimer manuellement. Une application de lecture des informations du fichier ldb par Argyronet. Action

IV - Scurit applicative
La scurit applicative consiste empcher l'utilisateur de modifier les formulaires, les tats, les macros et le code. Il existe 3 mthodes de protection qui protgent plus ou moins l'application.

IV-A - Mthode Compilation MDE


Pour scuriser simplement et rapidement une interface l'un des moyens les plus utiliss est la "compilation" MDE. Il n'y a aucune connaissance technique avoir puisque cela se fait partir du menu de Microsoft ACCESS. Notez que cette mthode est la plus simple, la plus rapide mais galement la plus efficace.

IV-A-1 - Contraintes
Il existe quelques contraintes l'utilisation de cette mthode.

-6-

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

Pour gnrer ce type de fichier il faut imprativement que


le code soit exempt de toute erreur de compilation mme si le code contenant les erreurs n'est jamais excut ; Il ne faut pas que le code modifie les objets en mode cration.

Un nouveau fichier "compil" est cr partir de l'ancien, ce dernier n'tant ni modifi, ni effac. L'extension de ce nouveau fichier n'est plus MDB mais MDE. Mme si on le dit "compil" ce fichier n'est pas directement excutable par le systme. Vous aurez toujours besoin de Microsoft ACCESS ou de son Runtime (livr sur le CDROM partir de la version 2002 Professionnal) pour l'utiliser.

IV-A-2 - Gnrer un fichier MDE


Pour gnrer un fichier MDE : 1 2 Commencez par ouvrir votre application. Rendez-vous dans le menu Outils et choisissez le sous-menu Utilitaires de base de donnes et l'option Crer un fichier MDE...

Menu de cration d'un MDE A l'ouverture de la fentre Enregistrer Fichier, donnez un nom au nouveau fichier (en principe le mme que l'application d'origine)

La fentre d'enregistrement
-7-

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

Cliquez sur Enregistrer

Si tout s'est bien pass vous n'aurez aucun message. Dans le cas contraire voici le message que vous verrez apparatre.

Explicite ? Aprs que vous aurez valid le message en cliquant sur Ok le fichier d'origine se rouvre. Ce message est typique d'un code VBA posant problme. Vous devez corriger l'erreur (ou les erreurs) avant de retenter la gnration MDE. Pour trouver l'erreur (ou les erreurs) ouvrez un module VBA (module ou formulaire) et compilez l'ensemble du code. Menu Dbogage option Compiler "nom du fichier". Corrigez les erreurs signales et recommencez jusqu' ce qu'il n'y en ait plus. Notez que pour un projet (fichier ADP) il y a galement une version "compile", l'extension de ce type de fichier est ADE.

IV-B - Mthode Mot de passe


Ce type de protection consiste verrouiller l'accs la base. Une fois le mot de passe fourni, l'application est non seulement utilisable mais galement modifiable.

IV-B-1 - Mot de passe au dmarrage


Le mot de passe au dmarrage verrouille l'ensemble du fichier, il est impossible de lancer l'application sans celuici. Le mot de passe est demand au dmarrage de l'application. Une fois le mot de passe fourni, tous les objets sont modifiables. Cette mthode n'est pas trs utilise sauf pour interdire l'accs d'une application mono-utilisateur.

IV-B-1-a - Mettre en place ce mot de passe


Pour mettre en place ce mot de passe : 1 Ouvrez l'application en mode exclusif,

2 3

Dans la fentre Ouvrir fichier Allez dans le menu Outils sous-menu Scurit Option Dfinir le mot de passe pour la base de donnes.

-8-

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

Le menu Scurit La fentre de dfinition du mot de passe apparat. Entrez le mot de passe de votre choix. Il peut tre compos d'un maximu de 20 caractres.

2 fois le mme !

IV-B-1-b - Retirer le mot de passe


Pour enlever un mot de passe procdez de la mme manire que pour le mettre : Ouvrez l'application en mode exclusif.

Le mot de passe... mais le bon ! Allez dans le menu Outils sous-menu Scurit Option Dfinir le mot de passe pour la base de donnes.

Menu intelligent. La fentre de dfinition du mot de passe apparat. Entrez le mot de passe de votre choix. Il peut tre compos d'un maximum de 20 caractres.

-9-

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

2 fois le mme ! Voici le message qui apparait lorsque vous tentez d'annuler un mot de passe sans avoir ouvert l'application en mode exclusif.

Ce message est exclusif...

IV-C - Mthode Mot de passe sur le code


Cette protection interdit l'affichage, la modification et les proprits du code contenu dans les modules, les formulaires ainsi que les tats. Il ne protge pas les macros. Pour mettre en place ce mot de passe : Ouvrez n'importe quel module (ou module de formulaire ou d'tat) Ouvrez le menu Outils, Proprits "Nom de la base" Cliquez sur l'onglet Protection

- 10 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

L'onglet de scurit Cochez la case Verrouillez le projet pour l'affichage Entrez le mot de passe dans les 2 zones de texte.

Si la case n'est pas coche l'utilisateur peut voir et modifier le code. Seules les proprits de l'application sont protges. Le mot de passe est demand avant l'affichage du code. Pour enlever le mot de passe dcochez la case Verrouillez le projet pour l'affichage et videz les zones de texte contenant le mot de passe. Cette mthode de protection est utile pour protger uniquement le code et les proprits, ce qui en fait une protection plutt faible. En effet l'utilisateur a accs tout le reste de l'application. Elle peut venir en complment de la protection par Scurit utilisateur que nous allons aborder dans le prochain chapitre. Aucun mot de passe n'est inviolable et il existe de nombreux produits shareware ou freeware pour retrouver les mots de passe des fichiers Office. Mon conseil est d'viter la protection partir d'un mot de passe sauf si vous y tes contraint.

V - Bases de la Scurit utilisateur


A partir de ce chapitre nous allons traiter de la protection par droit d'accs. Celle-ci ne s'improvise pas (comme les mthodes vu prcdemment) et met en oeuvre des concepts de groupes, d'utilisateurs, de droits, et d'hritage. De plus une bonne tude du fonctionnement de l'application et des tches des utilisateurs sont obligatoires.

V-A - Thorie
Si vous tes un habitu de la gestion des utilisateurs avec Windows vous pouvez directement passer la mise en oeuvre sinon lisez ce qui suit. Pour bien comprendre cette mthode il est ncessaire d'en expliquer le fonctionnement. Chaque utilisateur effectue des tches bien prcises dans l'application. Dans l'exemple d'une socit, un commercial n'aura pas accs aux mmes informations de l'entreprise qu'un acheteur ou qu'un magasinier. Ils font tous partis du mme groupe de travail puisqu'ils utilisent la mme application des niveaux diffrents.

- 11 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

Comme il n'y a pas qu'un seul utilisateur acheteur, commercial ou magasinier il est ncessaire de pouvoir crer des groupes d'utilisateurs ayant les mmes accs. Ces accs sont appels droits. Ils dterminent qui peut faire quoi dans l'application.

V-B - Dfinition et organisation des groupes, utilisateurs, droits...

Organisation Voici le schma d'organisation de la scurit Microsoft ACCESS.

V-B-1 - Groupe de travail


Le groupe de travail est l'entit la plus haute dans l'organisation, elle contient les groupes d'utilisateurs. 1 2 3 Elle peut tre utilise par une ou plusieurs applications. On ne peut utiliser plusieurs groupes de travail pour une seule application. On peut changer de groupe de travail automatiquement ou manuellement.

V-B-2 - Groupe d'utilisateurs


Le groupe d'utilisateurs est contenu dans le groupe de travail, il contient des utilisateurs. 1 2 3 Le groupe possde des droits Il y a plusieurs groupes d'utilisateurs dans un groupe de travail. Les groupes d'utilisateur natifs Administrateurs, Utilisateurs qui ne peuvent tre effacs.

V-B-3 - Compte d'utilisateur


Le compte d'utilisateur permet l'identification unique de l'utilisateur. Il est dot d'un nom, d'un mot de passe et ventuellement de droits.

- 12 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

Il est obligatoirement inscrit dans le groupe Utilisateurs. Il peut tre inscrit dans plusieurs groupes. Il hrite des droits de chaque groupe dans lesquel il est inscrit. Les utilisateurs natifs Administrateur, Utilisateur et Engine ne peuvent tre supprims.

V-B-4 - Droits
Il s'agit de l'ultime dfinition. Les droits autorisent ou interdisent les actions sur les objets de la base (tables, requtes...). Ils peuvent tre dfinis au niveau du groupe d'utilisateurs ou du compte d'utilisateur. Ils sont dfinis sur chaque objet de l'application.

V-B-5 - Objets
Vous connaissez dj les objets puisqu'ils composent une application Access.

Liste des objets


Base de donnes Tables Requtes Formulaires Etats Macro

Remarquez que les Modules et les Pages ne figurent pas dans la liste des objets pouvant tre scuriss. Un nouvel objet fait par contre son apparition, il s'agit de la Base de donnes. Pour les Modules et dans le cas ou vous ne pouvez pas mettre en place la protection par compilation vous pouvez vous servir de la protection par mot de passe sur le code.

V-B-6 - Hritage
L'hritage est la notion pivot de la scurit. Lorsqu'un utilisateur est inscrit dans un groupe, il hrite automatiquement des droits de ce groupe. Un exemple trs simple permet de bien comprendre ce concept. Le groupe 1 a le droit de supprimer les donnes, Le groupe 2 a le droit de modifier les donnes, L'utilisateur A a le droit d'ajouter des donnes.

Si vous inscrivez l'utilisateur A dans le groupe 1 : Il pourra supprimer des donnes (hritage du groupe 1) et en ajouter (ses propres droits). Vous l'inscrivez dans le groupe 1 et 2 : Il pourra supprimer, modifier des donnes (hritage du groupe 1 et 2) et en ajouter (ses propres droits). L'utilisateur hrite des droits du (ou des) groupe(s) dans lequel il est inscrit. Ces propres droits sont prioritaires sur ceux du groupe. Les droits dclars pour un utilisateur n'est valide que pour lui. Un utilisateur cumule les droits de tous les groupes dans lesquels il est inscrit en plus des siens. En aucun cas un utilisateur tant inscrit dans le mme groupe qu'un autre utilisateur bnficiera des droits de ce dernier. Seul le droit d'Administrer ne peut tre hrit il est toujours li un compte d'utilisateur.

- 13 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

V-B-7 - Propritaire
Voici une dfinition particulire lie uniquement l'objet. Il s'agit du propritaire de l'objet. Il ne peut y avoir qu'un propritaire par objet. Il peut y avoir plusieurs propritaires d'objets dans une application. Seul le propritaire Engine ne peut tre chang. Il rgit tous les objets systmes d'un fichier Microsoft Access. Cette proprit n'empche pas un administreur d'oprer des modifications sur un objet dont il n'est pas propritaire.

VI - Groupe de travail
Dans ce chapitre nous allons mettre en application les concepts thoriques du chapitre prcdent.

VI-A - Dmonstration
Le groupe de travail est toujours prsent dans une application mme s'il est momentanment transparent pour l'utilisateur. Nous allons en apporter la preuve : Ouvrez une application Allez dans le menu Outils / Scurit / Gestion des utilisateurs et des groupes...

Menu scurit Cliquez sur l'onglet Changer le Mot de passe Saisissez un mot de passe dans les zones de texte Nouveau et Confirmation

- 14 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

Dans le vif du sujet Confirmez en cliquant sur Ok ou Confirmer et Ok Fermez Access puis rouvrez une application. Sur les systmes Windows XP le nom d'utilisateur dans la fentre de connexion est le nom du compte de connexion Windows. Ceci est pratique en exploitation, mais ici il faut mettre Administrateur car c'est le compte par dfaut.

CQFD ! Une fois connect et tant que vous ne fermez pas Microsoft Access vous restez avec le compte de connexion et le groupe de travail prcdent. Remettez le mot de passe blanc : Allez dans le menu Outils / Scurit /Gestion des utilisateurs et des groupes... Cliquez sur l'onglet Changer le Mot de passe Entrez le mot de passe dans Ancien mot de passe n'entrez rien dans les autres zones de texte Confirmez en cliquant sur Ok ou Confirmer et Ok Fermez Access puis rouvrez une application. Notez que cette manipulation permet galement de changer le mot de passe.

- 15 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

Ces manipulations sont identiques pour initialiser, supprimer ou changer le mot de passe de n'importe quel utilisateur dclar. Aprs ces quelques manipulations simples nous allons crer un nouveau groupe de travail.

VI-B - Cration d'un groupe de travail


Pour une protection optimale il est obligatoire de crer un nouveau groupe de travail. Dans le cas contraire n'importe quel utilisateur utilisant le groupe de travail pas dfaut est en mesure d'accder la scurit utilisateur. Il existe une diffrence d'appel du gestionnaire de groupe de travail entre les versions antrieure la 2002 (XP) qui est prsente dans le tableau ci-dessous. Pour les versions Access Access 2002 (XP) et 2003 2000 et antrieures Recherchez le programme WRKGADM.EXE Allez dans le menu Outils / Scurit / (dans le rpertoire Microsoft Office pour la Gestionnaire des groupes de travail version 2000 (dans le rpertoire Windows/system32 pour les versions 97 et antrieures) Double-cliquez sur l'icne Pour l'instant le format 2007 ne supporte pas cette scurit. Dans la fentre du gestionnaire de groupe de travail vous pouvez lire plusieurs informations importantes.

Gestionnaire de groupe de travail Si vous utilisez le groupe standard les informations Nom et Organisation apparaissent vides. L'information Fichier de groupe de travail indique le fichier qui est utilis pour le groupe de travail courant. Vous pouvez remarquer que ce fichier s'appelle SYSTEM.MDW. Avant d'effectuer les manipulations suivantes veillez faire une sauvegarde du fichier de scurit actif. C'est celui indiqu dans Fichier Groupe de travail. En cas de problme vous pouvez le rcuprer sur votre CD-Rom d'installation d'Office ou de Microsoft ACCESS. Notez que le fichier SYSTEM.MDW original est strictement identique pour toutes les licences Microsoft Access. Si vous l'ouvrez vous constaterez qu'il ne contient que des tables. Cliquez sur le bouton Crer... pour crer un nouveau fichier de groupe de travail (extension Mdw).
- 16 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

La fentre suivante s'affiche.

Paramtres du nouveau groupe Entrez le nom du groupe de travail dans la zone Nom. En principe un nom explicite dsignant soit l'application, soit un groupe d'utilisateurs d'applications (nom d'un service...). Entrez le nom de votre socit dans la zone Organisation. Identificateur de groupe de travail est un numro unique servant de clef de unique. Vous pouvez entrez jusqu' 20 caractres alpha-numriques. Validez les paramtres en cliquant sur Ok.

L'ensemble de ces informations constitue une protection contre la cration d'un nouveau fichier mdw. Enregistrez ces informations pour qu'en cas de problme vous puissiez le recrer. En effet dans le cas o aprs avoir scuris une application vous perdiez le fichier MDW correspondant il ne vous sera plus possible d'accder l'application.

Chemin pour le fichier 1 2 Indiquez le chemin et le nom d'un fichier mdw Utilisez le bouton Parcourir pour placer le fichier o vous le souhaitez.

Je vous conseille un nom explicite, soit le nom de l'application auquel il est destin, soit un nom plus gnrique dans le cas d'applications multiples. Toujours diffrent de system.mdw pour viter toute confusion.

- 17 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

Le nom et l'emplacement Je ne pense pas que vous ayez besoin d'explication pour le fonctionnement de cette fentre. Il est conseill de placer le fichier de scurit dans le mme rpertoire que l'application. Cela vite de l'garer sur vos disques et de ne plus savoir quel fichier va avec quelle(s) application(s). 1 2 Une fentre rappelant les informations apparait. Cliquez sur le bouton Ok pour confirmer ou Changer pour revenir la fentre prcdente pour faire des modifications.

Nouveau groupe en cours de cration Enfin une fentre apparait confirmant la cration du fichier de scurit. Cliquez sur Ok

- 18 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

Confirmation Voici l'ultime phase de la cration du fichier, vous venez de retourner sur le premier cran. Vous pouvez constater que le nouveau fichier est devenu actif.

Enfin ! c'est fait... Pour activer un autre fichier de scurit, l'original par exemple : 1 2 3 Cliquez sur le bouton Joindre... et suivez les instructions. Sinon le bouton Quitter vous permet de fermer cette fentre. Fermer la fentre.

Cette manipulation ne constitue aucun problme en soit, mais il faut bien la maitriser car vous serez ammen l'utiliser souvent.

VII - Groupes d'utilisateurs


En rgle gnrale il est prfrable d'attribuer des droits aux groupes et non aux utilisateurs, sauf pour les comptes d'administration/dveloppeur. La raison en est simple, lorsque vous dfinissez des droits sur des groupes il suffit d'ajouter l'utilisateur aux diffrents groupes souhaits pour qu'il hrite immdiatement des droits. Si vous vous amusez dfinir les droits directement sur les comptes utilisateurs vous devrez faire la mme dfinition autant de fois qu'il y a d'utilisateurs avec les risques d'erreurs que cela comporte.

VII-A - Dfinition des groupes d'utilisateurs


Pour dfinir les groupes d'utilisateurs il faut d'abord dfinir une stratgie d'utilisation de l'application. Le mieux est d'organiser tout cela sous forme de tableau. Je fais ce tableau sur Microsoft Excel, cela me permet de faire facilement des modifications. Une fois le tableau prpar j'ai une vue synthtique de du travail faire.

- 19 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

Voici l'exemple d'un tableau ralis. Notez que n'importe quel tableur ou logiciel permettant de faire des tableaux fait l'affaire. A dfaut une simple feuille de papier, une rgle, un crayon et une gomme peuvent convenir.

Tableau des droits Vous pouvez remarquer que les groupes d'administration ne sont pas reprsents dans ce tableau. C'est normal car il s'agit d'un groupe ayant tout pouvoir il est donc inutile de faire une analyse.

VII-B - Cration de groupes


Nous allons crer les groupes ncessaires. Ouvrez la base si ce n'est pas dj fait. Allez dans le menu Outils/scurit/Gestion des utilisateurs et des groupes Cliquez sur l'onglet Groupes

Puis sur le bouton Nouveau...

Gestion des groupes

- 20 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

Nom et PID Indiquez le Nom du Groupe et le Numro d'Indentification unique ou PID Personnal ID. Recommencez l'opration autant de fois qu'il y a de groupes. Attention le numro d'identification (PID) est trs important, il ne faut pas mettre le mme numro pour tous les groupes et/ou utilisateurs.

VII-C - Suppression de groupes


La suppression se fait dans la mme fentre que la cration. Slectionnez le groupe que vous souhaitez supprimer. Cliquez sur le bouton Supprimer La suppression d'un groupe n'entraine pas la suppression des utilisateurs qui y sont inscrits, seuls leurs droits seront perdus. Les groupes natifs (Administrateurs et Utilisateurs) ne peuvent pas tre supprims.

VIII - Droits d'accs VIII-A - Droits et dpendances


Certains droits en impliquent d'autres, dans le tableau suivant nous dressons l'inventaire exhaustif pour les tables. Droit choisi Lire la structure Modifier la structure Lire les donnes Modifier les donnes Ajouter des donnes Supprimer des donnes Administrer Droit(s) li(s)

aucun Lire la structure, Modifier les donnes, Supprimer des donnes Lire la structure Lire les donnes, Lire la structure Lire les donnes, Lire la structure Lire les donnes, Lire la structure Lire la structure, Modifier la structure, Lire les donnes Modifier les donnes, Ajouter des donnes, Supprimer des donnes

- 21 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

Certains droits en impliquent d'autres, dans le tableau suivant nous dressons l'inventaire exhaustif pour les autres objets (formulaires, macros et tats). Droit choisi Ouvrir/Excuter Lire la structure Modifier la structure Administrer Droit(s) li(s) Aucun Aucun. Lire la structure. Ouvrir/Excuter, Modifier la structure, Lire la structure, Modifier la structure.

VIII-B - Groupes des utilisateurs


D'aprs le tableau des droits que nous avons dfini prcdemment nous allons dfinir les droits pour chacun des groupes d'utilisateurs. Allez dans le menu Outils/Scurit/Autorisations d'accs Cliquez sur le bouton d'option Groupes Les groupes dfinis apparaissent dans la liste droulante. Slectionnez le groupe Commerciaux. Slectionnez la table Client Slectionnez les droits Lire les donnes, Ajouter les donnes et Modifier les donnes Cliquez sur Appliquer pour enregistrer la modification. Slectionnez la table Commande Slectionnez les droits Lire les donnes, Ajouter les donnes, Modifier les donnes et Supprimer les donnes Cliquez sur Appliquer pour enregistrer la modification. Slectionnez la table Tarif Slectionnez les droits Lire les donnes Cliquez sur Appliquer pour enregistrer la modification. Slectionnez la table Stock Slectionnez les droits Lire les donnes Cliquez sur Appliquer pour enregistrer la modification.

Nous venons de dfinir les droits du groupe Commerciaux pour les tables. Recommencez l'opration pour Acheteurs, Magasiniers, Comptabilit.

IX - Les comptes utilisateurs IX-A - Cration des comptes


La procdure de cration des comptes utilisateurs est trs semblable celle de la cration des groupes. Il y a un utilisateur qui doit tre cr avant tous les autres. Il s'agit de l'utilisateur qui va remplacer le compte d'administration natif. Cet utilisateur aura tous les droits sur tous les objets de la base. Ces tches seront : Crer des groupes ou des utilisateurs, Supprimer des utilisateurs, Rinitialiser des mots de passe utilisateurs, Modifier les droits des groupes, Affecter les utilisateurs dans les groupes, Faire les oprations de maintenance sur la base. Crer, modifier, supprimer tout objet de la base.
- 22 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

Pour le crer suivez les instructions suivantes : Allez dans le menu Outils/scurit/Gestion des utilisateurs et des groupes Cliquez sur l'onglet Utilisateurs

Puis sur le bouton Nouveau...

Crer un compte d'utilisateur

Un air de dj vu... Indiquez comme nom superutilisateur et un Numro d'Indentification unique ou PID Personnal ID. Recommencez l'opration pour les autres comptes d'utilisateurs. Comme pour les groupes n'oubliez pas de bien noter chaque N PID pour permettre leur recration.

IX-A-1 - Dfinir les mots de passe des comptes


Pour qu'un compte soit scuris il faut dfinir un mot de passe, sans quoi n'importe qui pourrait se connecter l'application s'il connait le nom d'un utilisateur. Nous verrons cette manipulation plus loin dans ce tutoriel.

IX-B - Affectation des comptes


A l'exception des comptes d'administration il est inutile de dfinir les droits pour chaque utilisateur, il faut simplement les affecter aux groupes correspondants. Allez dans le menu Outils/scurit/Gestion des utilisateurs et des groupes
- 23 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

Droulez la liste Utilisateurs pour choisir superutilisateur Dans la liste Groupe slectionnez le groupe Administrateurs Cliquez sur le bouton Inscrire Recommencez l'opration pour les autres comptes d'utilisateurs dans leur(s) groupe(s) respectif(s). Lorsque vous avez termin cliquez sur Ok Vous pouvez remarquer que tous les utilisateurs sont inscrits dans le groupe Utilisateurs. C'est tout fait normal, le groupe Utilisateurs est un groupe natif, tous les comptes utilisateurs en font partie. Comme le groupe Administrateurs il ne peut tre supprim et on ne peut dsinscrire ses membres.

Vous pouvez inscrire un utilisateur dans plusieurs groupes. Ceci aura pour effet de combiner les droits des groupes.

IX-C - L'administrateur un cas particulier


Nous allons d'abord dfinir les droits pour l'administrateur. Comme nous l'avons dj vu il s'agit d'un cas particulier car le droit d'Administrer n'est pas soumis l'hritage. Allez dans le menu Outils/Scurit/Autorisations d'accs Cliquez sur le bouton d'option Utilisateurs

Le coeur est ici. Les utilisateurs dfinis apparaissent dans la liste droulante. Slectionnez l'utilisateur superutilisateur Slectionnez l'intgralit des tables (Shift + Clic)

- 24 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

Dfinition des droits du groupe Cliquez sur Administrer. Lorsque vous slectionnez Administrer tous les droits se slectionnent. Pour les objets suivants les droits sont lgrement diffrents mais il faut tous les cocher. Recommencez l'opration pour les objets Formulaires et <Nouveaux Formulaires> Recommencez l'opration pour les objets Etats et <Nouveaux Etats> Recommencez l'opration pour les objets Macros et <Nouvelles Macros> Recommencez l'opration pour les objets Requtes et <Nouvelles Tables/Requtes> Cliquez sur Appliquer pour enregistrer la modification.

IX-E - Activer les comptes


Les comptes sont actifs puisque nous les avons crs et affects aux groupes. Mais alors pourquoi nous n'y avons pas accs ? Pour accder la gestion des comptes il faut dfinir un mot de passe pour le compte Administrateur, n'oubliez pas que c'est le compte par dfaut. C'est avec lui que l'ensemble des utilisateurs de Microsoft Access dans le monde, lorsqu'ils n'ont pas mis en place la scurit, se connectent. Activons le mot de passe pour le compte par dfaut. Allez dans le menu Outils/scurit/Gestion des utilisateurs et des groupes Cliquez sur l'onglet Changer le mot de passe Administrateur est le compte actif dans cette session Ancien mot de passe doit rester vide.

- 25 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

Nouveau mot de passe entrez admin Confirmation entrez de nouveau admin Cliquez sur Appliquer et Ok Fermez Microsoft ACCESS

Un mot de passe ?

La scurisation est pratiquement termine, il ne reste que quelques manipulations effectuer pour verrouiller compltement notre fichier.

IX-D - Propritaire
Comme nous avons cr un compte d'administrateur (superutilisateur) nous allons changer la valeur Propritaire des objets. Le propritaire est celui qui a l'autorisation de modification des objets lui appartenant. Allez dans le menu Outils/scurit/Autorisations d'accs Cliquez sur l'onglet Changer de propritaire Slectionnez chaque objet ayant comme propritaire Administrateur (ctrl + click) Cliquez sur le bouton d'option Lister : Utilisateurs

- 26 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

Changement de Propritaire Slectionnez l'utilisateur superutilisateur. Cliquez sur Changer le propritaire

Nous avons donc changer le propritaire Administrateur par superutilisateur.

X - Mots de passe et dgradation


Ultime phase de la protection : la dgradation des droits qui va empcher l'accs l'application avec un fichier mdw standard. Pour faire cette manipulation il faut se connecter avec le nouveau compte d'administration que nous avons appel superutilisateur. Ouvrez Microsoft ACCESS et l'application.

On demande un mot de passe... Remplacez le nom Administrateur par superutilisateur Cliquez sur Ok Ouvrez le menu Outils/Scurit/Autorisations d'accs... Slectionnez Administrateur Slectionnez tous les objets Tables de la liste Cliquez 2 fois sur l'option Lire Structure pour tout dcocher

- 27 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

Cliquez sur Appliquer Cliquez sur Ok

Dgrader Administrateur

Il manque encore une dgradation faire, celle du groupe Utilisateurs. Slectionnez Lister : Groupe Slectionnez Groupe Slectionnez tous les objets Tables Cliquez 2 fois sur l'option Lire Structure pour tout dcocher

- 28 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

Cliquez sur Appliquer Cliquez sur Ok

Dgrader Groupe Utilisateurs

La base est maintenant scurise.

X-A - Les autres objets


Vous avez remarqu que nous avons protg seulement les tables. Vous pouvez choisir galement de protger les formulaires, tats et requtes. Dans le cas d'une protection avec compilation mde l'utilisateur ne pourra pas faire de modification sur les formulaires, tats et codes. Lorsqu'un utilisateur consulte un formulaire, tat ou requte dont il ne possde pas les droits de lecture l'objet apparait sans aucun contrle et donnes. Maintenant est-il opportun d'en informer l'utilisateur ? Pour crer ou modifier des objets formulaires, tats et macros vous devez vous ouvrir l'application en mode exclusif.

XI - Tests
Pour nous assurer que la base est scurise nous allons faire quelques tests.

XI-A - Avec le fichier MDW scuris


Nous allons faire le test avec le compte administrateur. Fermez ACCESS Ouvrez l'application Connectez-vous avec le compte Administrateur Essayez d'ouvrir l'une des tables
- 29 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

Vous obtenez le message suivant :

Test concluant

XI-B - Avec le fichier MDW standard


Nous allons faire le test avec le compte administrateur. Fermez ACCESS Excutez le programme MS Access Workgroup Administrateur Cliquez sur le bouton Joindre... Cliquez sur le bouton Parcourir... Slectionnez le fichier system.mdw prsent dans le rpertoire Office. Dans le cas ou vous ne trouvez pas le fichier system.mdw utilisez la recherche de Windows.

Groupe standard Ouvrez l'application, notez qu'aucun mot de passe ne vous est demand. Essayez d'ouvrir l'une des tables Vous obtenez le message mme message que prcdemment.

XII - Les requtes et la protection


Lorsque la scurit est en place, les requtes dpendent des droits sur les tables. Pourtant certaines requtes doivent pouvoir s'excuter par un utilisateur ayant des droits restreints sur la ou les tables concernes. Microsoft Access permet de faire cela. 1 2 3 4 Ouvrez ou crez une requte avec le compte superutilisateur. Faites un clic droit dans la zone des tables. Dans le menu contextuel choisissez Proprits... Dans Excuter Autorisations choisissez Celles du propritaire.

5 6

Fermez la fentre Proprits... Sauvegardez la requte.

Option importante

Il est vident que le propritaire de la requte doit avoir les droits sur les tables concernes.

- 30 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

Si vous regardez le rsultat de cette manipulation vous pourrez constater que la chane SQL comporte une option supplmentaire : WITH OWNERACCESS OPTION Voici une requte avec l'option Propritaire
SELECT CLIENT.N_CLIENT, CLIENT.NOM FROM CLIENT WITH OWNERACCESS OPTION;

Vous pouvez utiliser cette option pour tous les types de requtes.

XII-A - Plus loin avec ce type de requte


Vous pouvez choisir de concevoir l'application uniquement avec des requtes de ce type. Dans ce cas vous devez respecter les directives suivantes : Pas d'accs direct aux tables, Toutes les requtes doivent comporter le paramtre Les formulaires et tats sont bases sur des requtes, Les contrles de zone liste et zone liste modifiable sont bass sur des requtes,

XIII - Codes, SQL et astuces XIII-A - Fichier MDW et options de dmarrage


Il souvent plus pratique de se servir des options de dmarrage de Microsoft Access pour paramtrer le fichier mdw correspondant l'application. Ceci permet d'viter de manipuler le programme MS Access Workgroup Administrateur , de toujours utiliser le bon fichier mdw et surtout d'utiliser par dfaut le fichier mdw standard. Consultez mon tutoriel sur Les options de dmarrage.

XIII-B - Scurit et code VBA


Voici un inventaire non-exhaustif des syntaxes VBA lies la scurit.

XIII-B-1 - Changement du mot de passe de la base de donnes courante


CurrentDb.NewPassword "Ancien_pass", "Nouveau_pass"

"Ancien_pass" et "Nouveau-pass" peuvent tre remplacs par des variables string.

XIII-B-2 - Changement du mot de passe de l'utilisateur courant


With DBEngine.Workspaces(0) .Users(.UserName).NewPassword "ancienmotdepasse", "nouveaumotdepasse" End With

XIII-B-3 - Renvoi le nom de l'utilisateur ACCESS courant

- 31 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

Application.CurrentUser

Il s'agit de l'utilisateur connect l'application Microsoft ACCESS.

XIII-B-4 - Renvoi le nom de l'utilisateur WINDOWS courant


Environ("USERNAME")

Il s'agit de l'utilisateur connect Microsoft Windows, il peut tre diffrent de celui de Microsoft ACCESS. Certain programmeur utilise le mme nom pour Windows et ACCESS.

XIII-C - Scurit et DAO XIII-C-1 - DAO - Crer un groupe


Sub CreateGrp() ' necessite librairie DAO Dim wrk As Workspace Dim grp As DAO.Group Set wrk = DBEngine.Workspaces(0) With wrk Set grp = .CreateGroup("Mongroupe", "AZERty12456") .Groups.Append grp End With End Sub

XIII-C-2 - DAO - Crer un utilisateur


Sub CreateUsr() ' necessite librairie DAO Dim wrk As Workspace Dim usr As DAO.User Set wrk = DBEngine.Workspaces(0) With wrk Set usr = .CreateUser("Jacques", "567AzeRTY89", "mon_motdepasse") .Users.Append usr End With End Sub

XIII-C-3 - DAO - Suppression Groupe


Sub DeleteGrp() ' necessite librairie DAO Dim wrk As Workspace Set wrk = DBEngine.Workspaces(0) With wrk
- 32 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

.Groups.Delete "Mongroupe" End With End Sub

XIII-C-4 - DAO - Suppression Utilisateur


Sub DeleteUsr() ' necessite librairie DAO Dim wrk As Workspace Set wrk = DBEngine.Workspaces(0) With wrk .Users.Delete "Jacques" End With End Sub

XIII-C-5 - DAO - Affecter un utilisateur un groupe


Sub AffectUsrGrp() ' necessite librairie DAO Dim Wrk As Workspace Dim Usr As DAO.User Dim Grp As DAO.Group Dim grpAffect As DAO.Group Set Wrk = DBEngine.Workspaces(0) With Wrk Set Usr = .Users("Jacques") Set Grp = .Groups("Mongroupe") Set grpAffect = Usr.CreateGroup("Mongroupe") Usr.Groups.Append grpAffect End With End Sub

XIII-B-6 - DAO - Lister les groupes et utilisateurs


Sub lstGrpUsr() Dim Wrk As Workspace Dim Grp As DAO.Group Dim Usr As DAO.User Set Wrk = DBEngine.Workspaces(0) With Wrk Debug.Print "Groupes :" For Each Grp In .Groups Debug.Print " " & Grp.Name
- 33 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/

Comprendre et mettre en oeuvre la scurit sous Microsoft Access par Fabrice Constans

Debug.Print "

Contient les membres suivants:"

If Grp.Users.Count <> 0 Then For Each Usr In Grp.Users Debug.Print " " & Usr.Name Next Usr Else Debug.Print " Aucun Membre" End If Next Grp End With End Sub

XIII-D - SQL et la scurit


SQL dispose de tout un ensemble de commandes permettant de grer les comptes utilisateurs, groupes et permissions (droits). Cependant cette fonctionnalit interessante n'est disponible qu'avec ADO. En mode excution directe et DAO il renvoie un message d'erreur.

XIV - Liens importants


Quelques liens importants : Administrer une base de donnes (FAQ) Renseignement sur l'utilisateur (FAQ) Code VBA sur la scurit DAO et ADO par Tofalu Plus loin avec ADOX par J.M. RABILLOUD Advanced MS JET SQL for ACCESS 2000

XV - Remerciements
Je tiens remercier : Dolphy35 et Kikof pour le temps pass en relecture et correction. l'quipe de Developpez.com pour la qualit du site. Nono40 pour son super diteur XML qui se bonifie avec le temps comme un bon Bordeaux. Je prsente mes plus plates excuses ceux que j'aurais omis de remercier.

- 34 -

Copyright 2005 Fabrice CONSTANS. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. http://loufab.developpez.com/tutoriels/access/securite/