Votre question

cacher tables et requetes sous access

Tags :
  • Programmation
Dernière réponse : dans Programmation
27 Octobre 2004 17:13:18

Bonjour a vous

Bon, alors j'explique mon gros probleme.

J'ai une base de données utilisées par 30 personnes, et certains d'entre eux ( les commerciaux ) s'amusent a saisir les données directement dans les tables, et non dans mes formulaires ( jusque la, on peut se dire pourquoi pas ). le probleme, c'est que j'ai des procedure de calcul de rémunération dans ces formulaires, qui vont s'incrire dans les tables ( calcul fait par une autre personne, lors du paiement ). Et bien, vous me croirer ou non, ces commerciaux changent tout simplement les rémunération des autres commerciaux ( et oui, quand on est c.., on est c.. ).

Je cherche donc un moyen de cacher ces tables et requetes, pour qu'ils ne puissent rien changé, et qu'ils soient obligé de passer par mes formulaires.

J'ai essayé :
- renommer mes tables en les commencant pas Usys pour les cacher, mais ils ont trés vite trouver l'option Afficher les Objet system
- J'ai créer un mde liée a un mdb pour parrer a ca, mais ils ont trouver la liaison des tables ( avec la touche Shift ), et ils continuent
- J'ai créer une sécurité d'access, en couplant avec le mde et le Usys devant les tables, mais rien n'y fais.

Je vous demande donc si vous avez une idée afin que je ne perde pas ma place, car la, ca commence a enerver la direction, qui me fout la pression.

Juste une dernière chose, je suis obligé de developper ca sous access.

Merci de vos informations, et d'avoir pitié d'un pov developpeur qui n'a pratiquement plus de cheveux a force de se les arracher.

Thanks a vous

Autres pages sur : cacher tables requetes access

27 Octobre 2004 19:00:06

pas de pot quand même, j'ai déjà développé des bases Access pour différents utilisateurs, mais heureusement pas aussi stupides que tes commerciaux (faut dire que dans ma boite ils ont pas que ça à foutre d'aller mettre du bordel dans les applis ;-) )
donc côté sécurité je me suis jamais trop posé la question, mais peut-être que sur ce site tu trouveras une réponse...

Après tout dépend de ta version d'Access bien sûr
27 Octobre 2004 21:11:57

Super, c'est excellent

Je vais testé ca de suite, et je te dis ca, mais ca me parait être exactement ce que je cherche.

Merci, et je te tiens au courant ( c'est quand même beau l'entre aide, ca fait 2 semaines que je cherche ca partout ).
Contenus similaires
28 Octobre 2004 08:35:19

Bon alors, le truc marche nickel de chez nickel pour interdire la lecture des tables et autres. Maintenant, mon probleme, c'est que mes formulaires ( auxquel ils ont acces ) ben ne marche plus, étant donné qu'ils n'ont aucun acces aux tables.

Bref, retour a la case départ. Je continu a chercher, mais si tu as une idée, thanks.
28 Octobre 2004 08:50:42

1) tu bosses sur quelle version d'access ? (si tu réponds 97 ça serait sympa, c'est aussi la version que j'utilise pour le moment ;-) )

2) arf, je pensais qu'on pouvait faire la distinction entre lire une table directement ou y accèder en lecture/écriture via une requête sql (que ce soit ds un formulaire ou une requete classique...)
je continue rapidement mes recherches, mais j'aurai surtout du temps pour regarder ça demain
Anonyme
28 Octobre 2004 09:08:29

Salut !
Il faut mettre en oeuvre la sécurité access.

Pour cela je te conseille mon site ACCESSITE il y a justement un dossier qui traite de l'intégralité de la sécurité sous ACCESS.


Si tu as des questions n'hésite pas.
28 Octobre 2004 09:53:01

mouéf, j'ai parcouru rapidement les 2 dossiers sur la sécurité, et je vois toujours pas comment régler son problème...

y'a un soft qui permet d'exécuter une appli Access (sans modification des objets) sans avoir besoin d'Access justement (me rappelle plus de son nom), ça peut pas être la solution ?
Anonyme
28 Octobre 2004 10:45:42

Tout d'abord et c'est très important il faut lire le dossier Architecture, c'est le début !
Ensuite lire les 2 dossiers sécurités, et enfin la mise en place du raccourci (ligne de commande).

C'est la méthode officielle de chez Minimou...

Il est certain que le moteur de base de données d'access, la sécurité c'est pas le top, SQL Server donne de bien meilleur résultat par contre niveau dév et investissement c'est plus lourd. On a rien sans rien !!

Pas de questions ?
28 Octobre 2004 11:40:27

ouais, j'en ai au moins une pour le moment :

ce que tu appelles client/serveur, c'est en fait les mde/mdb ?
28 Octobre 2004 11:43:48

Bon, je vois que ce probleme ( a priori ou je pensais etre le seul ) est un véritable post de discussion, et tant mieux.

J'ai regardé ton site, j'ai appliqu" à la lettre, et rien n'y fais, mon prob reste inchangé.

Je le reformule, ou cas ou je ne sois pas super clair.
J'ai une base de données completes, avec gestions des droits utilisateurs... un exemple vaut mieux que de long discourt :

J'ai monsieur COMPTA, monsieur COMMERCIAL, monsieur TECHNICIEN, monsieur ADMIN.

Monsieur ADMIn administre tdonc la base, possede tous les droits ( heu, dans ce cas, c'est moi ).

Monsieur COMMERCIAL saisie les devis, transfert en commande, et lance les interventions de Monsieur TECHNICIEN.

Monsieur TECHNICIEN effectue les travaux, et valide ces travaux.

Monsieur COMPTA lance la facturation au client, des recepton de monsieur TECHNICIEN comme quoi les travaux sont bien réalisé, et du coup, déclenche la commision de monsieur COMMERCIAL. Monsieur COMPTA gere egalement les salaires de tous.

Voila pour poser le probleme.

A aucun moment monsieur TECHNICIEN doit voir le devis de monsiuer COMMERCIAL, ni voir les salaires, ni voir les commisions.

Monsieur COMMERCIAL ne doit pas voir non plus les salaires, et SURTOUT ne pas voir les commisions ( car pourcentage différent entre commericuax, donc imaginez le souc ).

Monsieur COMPTA ne peut en aucun cas voir les données de Monsieur COMMERCIAL, ni meme de MONSIEUR TECHNIQUE.

Et comple du probleme, AUCUN de monsieur COMMERCIAL, COMPTA ou TECHNCICIEN ne peut bien évidement prendre la base de données, la copier, la ramener chez lui, pour voir ce qu'il y a dedans ( fichier clients top secret, paye top de chez top secret, etc... )

Voila. J'espere avoir été clair.
Maintenant, si j'interdit tout acces à la lecture des tables et requetes, et de certains formulaires en fonction du profil, mon soucis, c'est que monsieur TECHNICIEN doit bien pouvoir ( via formulaire filtré sur son login ) certaines données provenenant du devis de monsieur COMMERCIAL ( matériel, coordonnées clients, temps prévu, travaux à faire ). Monsieur COMMERCIAL doit pouvoir également voir ces différentes commisions enregistrés pour le mois, et monsieur COMPTABLE doit pouvoir lire le devis ( sans les données techniques du TECHNICIEN ) pour réaliser la facture ( donc acceder aux données de monsieur COMMERCIAL ), mais en fonction de monsieur COMPTA ( ils sont 2 ), chacun aura un acces différents.

Ouf, j'en peut plus, mal au doigt...

Donc si vous savez comment techniquement, je peut sécuriser tout ca, merci à vous
Anonyme
28 Octobre 2004 11:45:26

Le client/serveur c'est le fait d'avoir la base de données séparée du programme.
Mdb/mdb
Mde/mdb
ou encore mde/mde, ou bien MDx/sql server
MDx/ oracle... etc
28 Octobre 2004 11:50:00

j'avais compris ton problème dès le départ ;-)

si ça peut te rassurer, la sécurité 0 n'existe pas, si je voulais je pourrais consulter le solde des comptes bancaires de nos 2 millions de clients ;-)

pour en revenir à Access, le truc c'est qu'il faut à tout prix éviter que tes utilisateurs aient accès aux fonctions d'éditions et tous les menus qui vont avec - d'où surement l'idée du client Access sur chaque poste et qui ne comporte que le minimum nécessaire à l'exécution de l'appli, le serveur Access restant commun à tous, l'administrateur étant le seul autorisé à y accèder directement, donc modifier les tables, formulaires, etc...

edit : merci MOOAAA ;-)
28 Octobre 2004 11:57:32

ouaips sylvain, mais une question à 2 balles ( pour continuer d'etre chi.. )

J'ai ma base en mdb sur le serveur dans un répertoire privée.

J'ai le mde pour chacun des utilisteurs ( donc différent du profil ) que je met sur chaque poste. Ce mde va lié les tables au mdb qui sont situé sur le serveur. Pour etre sur qu'il ne vont pas prendre les tables, je protege mon rep sur le serveur ( ils n'ont pas acces a ce repertoire ). Hé bien, tu me crois, tu me crois pas, mais du coup, le mde ne peut pas lire ni écrire ( normal ).
Donc ce que j'ai fais, c'est que j'ai mis le mde et le mdb dans le meme rep accessible a tous ( donc la, il peuvent prendre la base ).

Je tourne en rond, je devient chauve a force de m'arracher les cheveux, et je craque ( bouhhhhhh )

J'ai meme essayé de recreer les connexions en vba en donnant le droit administrateur a cette connexion ( vers la base mdb ) afin que je puisse écrire. J'étais sur que cela aurais pu marcher. Et bien nan, soit j'ai mal fait, mais ca marche poa.

A votre avis, est ce la seule solution ( le mde ne contient aucune table, le mdb est interdit a tous sauf administrateur, le mde se connecte au mdb en qualité d'administrateur, et comme j'ai fais un mde, on ne peut pas voir la source ). Est ce que sur le principe, j'ai bon ?
Anonyme
28 Octobre 2004 11:59:36

Ok !
Déjà il faut classer les données par groupe d'utilisateurs. (ne pas mettre des données consultable par un groupe et pas par un autre dans une table accessible au 2 groupes) Cela demande souvent une refonte totale de l'application.

Une fois que cela est fait la securité devrait bien être au point.

Ensuite, pour permettre à un groupe de voir les données contenues dans une table ou ils n'ont pas accès il faut créer des requêtes avec les champs à afficher et pour la sécurité changer le groupe propriétaire dans les propriétés de la requete. Dans ce cas le groupe ayant un accès en lecture.

C'est un peu délicat et pas évident à faire, mais avec le moteur de Access c'est la seule solution car la profondeur de gestion des droits n'est pas suffisante.


28 Octobre 2004 12:05:03

j'ai deja essayé ca moaa, mais rien n'y fais, si le groupe COMPTA n'a pas access à la table DEVIS, et que je fais une requete filtre_devis qui va afficher que certaines donnes de DEVIS, et que je la redefinie proprietaire de COMPTA, elle ne s'execute pas étant donne que COMPTa, TECHNICIEN, COMMERCIAL sont trois groupe distinct, et qu'un utilisateur ne peut appartenir qu'a un seul groupe, forcement ?

Tu vois
Anonyme
28 Octobre 2004 14:55:32

Un utilisateur peut appartenir à plusieurs groupes.
Il suffit de l'y déclaré.

Il faut définir la requete comme s'exécutant avec les droit du propriétaire. En mettant le propriétaire adapté tu devrait pouvoir l'exécuter avec n'importe quel utilisateur. Clic droit Propriétés, Exécuter autorisations.

Si ton appli devient une usine à gaz (comme un moteur de citroën GS) tu peux toujours la scinder en plusieurs appli indépendante (une pour les devis, une pour les commerciaux...)

Arrf les sécurités ACCESS sont un peu capilotractées.
Anonyme
28 Octobre 2004 14:57:37

Citation :

sylvain2 a écrit :
y'a un soft qui permet d'exécuter une appli Access (sans modification des objets) sans avoir besoin d'Access justement (me rappelle plus de son nom), ça peut pas être la solution ?


C'est Visual Basic Entreprise, mais il faut recoder la partie programme...
De plus les sécurités sont liées au moteur de base de données Access et non au programme... :-?
28 Octobre 2004 16:44:22

Bon, je comprends plus rien

Je crée ma table appartenant à COMMERCIAL, mais sans aucun droit ( comme ca, il ne peut meme pas visualiser la table ). Je crée une requete filtrés ou il le droit de voir les données ( mais pas le droit de modifier ). Et bien, rien que la, access ne veut pas ( pas le droit de lecture sur la base.

Bon je suis paumé, je comprends plus rien.

Moaaa, peut tu expliquer clairement la procedure, que je le teste directement, comme ca, je comprendrais mieux.

Thanks
28 Octobre 2004 22:08:57

Bon, a tous merci, mais je viens de résoudre mon probleme, on passe tout en site intranet, via ASP.

Et la, j'ai plus aucun soucis de sécurité ( merci patron, je vais pouvoir enfin avoir à nouveau des cheveux ).

Encore merci
29 Octobre 2004 09:25:00

j'ai pas osé te proposer cette solution, vu que tu tenais visiblement à une solution 100% access dans ton 1er post ;-)
29 Octobre 2004 11:43:19

merci a vous deux de m'avoir aider.

Mais cette solution je l'avais déjà envisager, mais mon boss ne voulait pas. Je lui ai montré ce que j'avais deja fait, et il en est ravi.

Comme ca, plus de probleme.

Thanks
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS