Bonjour,

je n'ai pas trouvé de réponse simple à mon problème pour contourner la non-prise en charge des comptes utilisateurs dans Access 2007. Je ne souhaitais pas garder un fichier au format 2003.

Du coup, j'ai trouvé cette solution qui en aidera peut être certains et fera également l'objet de critiques concernant des failles que je n'aurai pas vu.

. Configuration standard :
- une db avec les tables, disons DATA
- une db avec le reste (forms, modules ...), disons MAIN

La base DATA est chiffrée à la 2007 (Outil base de donnée / Chiffrer avec mot de passe). Donc, pas moyen (théoriquement) de l'ouvrir sans le mot de passe. De plus, le cryptage des données aurait été amélioré sur la mouture 2007.

Reste à lier les tables avec :

. la commande TransferDatabase puis en saisissant le mot de passe (pas très pro dans le cadre d'une appli à distribuer en cas de changement du répertoire d'install des fichiers, de plus, cela sous entend que l'utilisateur connaît le mot de passe.)

. appel au DAO comme nous l'explique TOFALU ici

La seconde méthode marche très bien et le mot de passe est trasmis dans le code (ce qui m'a semblé impossible avec le Docmd.TransferDatabase).

Les données de la base DATA ne seront donc réellement sécurisées que si l'on empêche l'accès :
. au mot de passe dans un module de MAIN. Pour cela, enregistrer la version à distribuer en .accde)
. aux tables liées, si l'on souhaite développer par exemple une gestion des utilisateurs à sa propre sauce. Pour ce faire, verrouillage maximum des options de démarrage (interdire l'affichage du volet de navigation et les touches spéciales + désactivation du démarrage avec la touche MAJ).

Normalement, seule la db MAIN de l'utilisateur aura accès aux données et on pourra y mettre en place les stratégies d'autorisation d'accès.

Merci de formuler vos critiques car je compte mettre ça en place dorénavant. Si vous voyez quelque chose à améliorer, je suis VRAIMENT preneur.

Merci à toute l'équipe de Developez.

Alain