Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Sécurité
Sécurité Le forum qui s'occupe de votre préoccupation de sécuriser l'accès à votre application Access, ainsi qu'à la sécurité des données.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/10/2007, 15h14   #1
Membre éprouvé
 
Homme Robert LINCE
Conseiller psycho-pédagogique
Inscription : octobre 2007
Messages : 282
Détails du profil
Informations personnelles :
Nom : Homme Robert LINCE
Localisation : Belgique

Informations professionnelles :
Activité : Conseiller psycho-pédagogique
Secteur : Enseignement

Informations forums :
Inscription : octobre 2007
Messages : 282
Points : 485
Points : 485
Par défaut Empêcher toute modification d'un enregistrement

Bonjour.
J'ai développé une application de gestion des bilans de santé en milieu scolaire.
Est-il possible de verrouiller définitivement un enregistrement. Concrètement, quand l'utilisateur décide que toutes les données d'un bilan sont corretces, est-il posible d'empêcher toute modification ultérieure de cet enregistrement. Actuellement, j'ai insérer une case à cocher dans la table, et lorsqu'elle est cochée, le formulaire qui affiche les données ne permet plus que cet enregistrement soit modifié. Le code est le suivant :
Code :
1
2
3
4
5
If Forms![VMTout]![Verrou] = True Then
Me.AllowEdits = False
Else
Me.AllowEdits = True
End If
Bien entendu, si on ouvre la table, on peut modifier le contenu de l'enregistrement. Ma question est donc : est-il possible d'empêcher définitivement qu'il soit modifié, même quand on ne passe pas par le formulaire?
Merci.
RobiPMS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/10/2007, 20h02   #2
Membre Expert
 
Avatar de keita
 
Homme
Inscription : novembre 2002
Messages : 879
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Côte d'Ivoire

Informations forums :
Inscription : novembre 2002
Messages : 879
Points : 1 015
Points : 1 015
Envoyer un message via MSN à keita
bonjour à tous
A ma connaissance ce que tu demandes n'est pas faisable; ce qu'on fait par contre et en général (enfin je pense) c'est d'empecher les utilisateurs d'acceder à la fenetre base de données:
1/ en creant par exemple une formulaire qui s'ouvrirait au lancement de l'application
2/ un barre de menu personnalisé pour empecher l'utilisateur d'avoir à sa disposition la barre de menu standard d'access
J'espere avoir compris ta preoccupation?
@+
keita est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2007, 13h13   #3
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 098
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 098
Points : 11 624
Points : 11 624
Bonjour,

Ne pas oublier de verrouiller les options dans Outils/démarrage...

La sécurité utilisateur est plus robuste mais dans l'enseignement on ne peut pas dire que l'environnement soit à risque...

Pour un effet maximum de ta routine vba met là également dans l'événement Sur activation.

Tout connaitre sur les événements voir le chasseur d'événement (application libre open source à télécharger sur mon espace perso)

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2007, 16h41   #4
Membre éprouvé
 
Homme Robert LINCE
Conseiller psycho-pédagogique
Inscription : octobre 2007
Messages : 282
Détails du profil
Informations personnelles :
Nom : Homme Robert LINCE
Localisation : Belgique

Informations professionnelles :
Activité : Conseiller psycho-pédagogique
Secteur : Enseignement

Informations forums :
Inscription : octobre 2007
Messages : 282
Points : 485
Points : 485
Merci pour vos réponses.

Au démarrage, je masque la base de données et j'ouvre un menu. Comme il est parfois nécessaire de permettre aux utilisateurs d'accéder directement aux données, je n'ai pas désactivé F11. Vos deux réponses confirment ce que je pensais.
Que veux-tu dire, Loufab, par verrouiller les options dans outils, démarrage. Moi, j'ai simplement désactivé l'affichage de la fenêtre base de données, et ouvert le formulaire-menu de démarrage de mon application. Faut-il faire plus que ça?
A+.
RobiPMS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2007, 17h37   #5
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 098
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 098
Points : 11 624
Points : 11 624
Dans cette fenêtre il y a plein de choses interessantes comme :

Autoriser les menus complets
Autoriser les menes contextuel
Utiliser les touches spéciales d'accés (F11 par exemple ou encore shift... Empécher d'arrêter le code -celui qui te verrouille le form en lecture...)
Afficher les barre d'outils... etc

Barre de menu : tu peux mettre un menu personnel sans le Fenêtre Afficher...
le contextuel qui permet de faire des copier coller : la aussi tu peux mettre ton propre menu.

A étudier de près lorsqu'on verrouille
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 13h03   #6
Membre régulier
 
Inscription : avril 2005
Messages : 116
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 116
Points : 92
Points : 92
Tu as aussi essayé d'affecter la valeur "true" aux propriétés locked des différents champs?
mayloshi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2008, 11h09   #7
Futur Membre du Club
 
Inscription : août 2003
Messages : 74
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 74
Points : 18
Points : 18
Bonjour,
j'ai le même problème, quand j'ai terminé un bilan, j'aimerais que l'enregistrement soit verrouillé, afin de ne plus pouvoir le modifier par la suite.
je vais essayer de reprendre la formule précédente, et de verrouiller des champs, au lieu de l'enregistrement entier, car sinon cela me bloque tout le formulaire, et je ne peut plus appeler d'autres bilans.
__________________
Cordialement
JC Richard
locweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2008, 13h36   #8
Membre expérimenté
 
Inscription : juillet 2005
Messages : 555
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juillet 2005
Messages : 555
Points : 578
Points : 578
Par défaut Questions

Bonjour à tous,

Est-ce que le formulaire est en mode appel sur 1 enregistrement ou bien est-ce un formulaire qui fait défiler les enregistrements ?
Dans le premier cas :
sur l'évènement ouverture on verrouille le formulaire et tous les contrôles c'est simple c'est dans l'aide access.
Dans le second cas c'est dans l'évènement sur activation on peut faire la même chose.
J'ai des contraintes similaires avec des pièces passées en compta et qui sont définitivement verrouillées.
a+
naphta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2008, 14h44   #9
Futur Membre du Club
 
Inscription : août 2003
Messages : 74
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 74
Points : 18
Points : 18
Bonjour,
dans mon entête de formulaire j'ai un champ NOM avec une liste déroulante qui me permet d'afficher une fiche dans le corps du formulaire.
Une fois le formulaire rempli, j'ai un bouton "enregister le formulaire" qui actualise l'enregistrement, et j'aimerais rajouter une ligne de code pour le verrouiller.
De même un autre bouton permettrait de le déverrouiller au cas ou j'aie des modifs ultérieures à apporter.
Avec la case à cocher verrou, il bloque tout le formulaire, y compris l'entête, ce qui bloque l'accès à la liste déroulante. Il faut alors que je ferme et ouvre le formulaire pour que cela fonctionne.
Quelle est la solution?
__________________
Cordialement
JC Richard
locweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2008, 19h34   #10
Membre expérimenté
 
Inscription : juillet 2005
Messages : 555
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juillet 2005
Messages : 555
Points : 578
Points : 578
Par défaut carrement

hum désolé,

Citation:
est-il possible d'empêcher définitivement qu'il soit modifié, même quand on ne passe pas par le formulaire?
j'avais pas lu la vrai question,

pour moi :
des frontaux compilés pour tous les utilisateurs, ce qui évite qu'ils accèdent aux tables
ensuite la seule vraie façon d'empêcher une modification c'est l'archivage sur une base en lecture seule.

a+
naphta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2008, 06h30   #11
Futur Membre du Club
 
Inscription : août 2003
Messages : 74
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 74
Points : 18
Points : 18
Bonjour,
c'est quoi au juste des frontaux compilés ?
__________________
Cordialement
JC Richard
locweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2008, 09h23   #12
Membre expérimenté
 
Inscription : juillet 2005
Messages : 555
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juillet 2005
Messages : 555
Points : 578
Points : 578
Par défaut Frontaux compilés

Bonjour,

En règle générale pour un accès multi-utilisateurs on a :
- une base de données centrale qui a juste les tables et le schéma.
- Les utilisateurs si connectent au travers d'un frontal de présentation de données qui peut être compilé c'est à dire que l'extension n'est pas MDB mais MDE.

On dit aussi fontral et dorsale le tout sous access évidement

a+
naphta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2008, 10h30   #13
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 098
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 098
Points : 11 624
Points : 11 624
Citation:
Envoyé par naphta Voir le message
des frontaux compilés pour tous les utilisateurs, ce qui évite qu'ils accèdent aux tables
Attention de ne pas faire de raccourci entre frontal et sécurité :
Le frontal, compilé ou non, n'empêche pas un utilisateur d'accéder au données. Il permet -entre autre- d'avoir un fonctionnement plus robuste en multi-utilisateur.

L'utilisateur a besoin des droits systèmes en Ajout/écriture/suppression sur l'espace de partage des données (fonctionnement du ldb). Sans la sécurité utilisateur (format post 2007) l'utilisateur de l'application a accés aux tables. Il peut TOUT faire, ajout, suppression, modification et même destruction pure et simple du fichier de données.

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2008, 11h18   #14
Futur Membre du Club
 
Inscription : août 2003
Messages : 74
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 74
Points : 18
Points : 18
Par défaut Recentrage du débat

Bonjour les spécialistes,
et pour revenir à ma question, de verrouillage d'un enregistrement, sans bloquer tout le formulaire, avez-vous une idée ?
__________________
Cordialement
JC Richard
locweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2008, 11h46   #15
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 098
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 098
Points : 11 624
Points : 11 624
Bonjour,

Il y a plusieurs solutions de la plus simple et la moins (pas) sécurisé à la plus complexe et donc la plus sécurisé.

Celle pas du tout sécurisé, celle qui ne resiste pas à un utilisateur débrouillard :

Coté table, rajouter un champ oui/non initialisé à Non par défaut. le nommer Verrouillé.
Coté IHM, rajouter ce champ dans le formulaire (caché ou non), sur l'événement Sur Activation (à chaque changement d'enregistrement) tester la valeur du champ verrouillé et changer la propriété Modif autorisé en conséquence. Ne pas oublier le test et l'opération inverse car cette propriété reste d'un enregistrement à l'autre.
Ne pas oublier également la gestion de ce champ, passage de Non à Oui selon ses attentes.

On notera que l'utilisateur à la possibilité d'aller directement sur la table pour modifier ce champ. Donc sécurité ZERO !

Méthode sécurisé mais nécessitant la mise en place de la sécurité utilisateur + requetes sécurisés.

Verrouiller la table en lecture seule pour tous les utilisateurs sauf le superUtilisateur.
Rajouter le système de verrouillage comme expliqué précédemment.
Modifier les accés (modification/suppression/ajout) à cette table en passant par une requete sécurisé et codée en VBA en utilisant l'option
WITH OWNERACCESS OPTION conditionné par le champ Verrouillé.

Cette solution est plus longue à mettre en oeuvre mais totalement sécurisé. Le problème est qu'elle ne fonctionne plus en 2007.

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2008, 11h55   #16
Futur Membre du Club
 
Inscription : août 2003
Messages : 74
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 74
Points : 18
Points : 18
Merci,
la partie non sécurisée me convient, pour le code, je n'y connais rien, est ce que le code décrit en début de ce forum est suffisant ?
Cordialement.
__________________
Cordialement
JC Richard
locweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h05.


 
 
 
 
Partenaires

Hébergement Web