IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Sécuriser les données d'une bdd accédée par plusieurs utilisateurs


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de kalina
    Femme Profil pro
    Développeur Java
    Inscrit en
    Avril 2009
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2009
    Messages : 220
    Par défaut Sécuriser les données d'une bdd accédée par plusieurs utilisateurs
    Bonjour,
    Voilà, j'ai réalisé un logiciel en java qui se connecte à une bdd oracle, plusieurs utilisateurs (5 en tout) l'utilisent et chacun d'eux à sa propre bdd sur son pc (je précise que nous travaillons tous dans la même entreprise et que nous sommes reliés à un réseau local). il se trouve que chaque utilisateur a besoin de consulter les données des autres, donc j'ai pensé à ne garder qu'une seule bdd sur l'un des pc et tous le monde va travailler sur celle-ci(insertion de nouvelles données, consultation...) et c'est là que ça coince:
    1-faut-il utiliser des theads pour l'accès à la bdd : j'utilise un singleton pour la connexion et j'ai pensé à synchroniser la méthode getInstance(),mais ça voudrait dire(je pense!)qu'un seule utilisateur à la fois aurait accès à la bdd,ça va énormément ralentir leur travail!
    2-vaut-il mieu laisser la chose telle qu'elle et faire régulièrement l'import et l'export des données de tous le monde, ça m'enchante pas non plus!
    3-je précise que dans les meilleurs des monde! je voudrais que tout le monde puisse travailler en même temps mais sans qu'il y ait conflit de données!(le problème est précisément là)
    donc si vous avez des idées n'hésitez pas à m'aider j'en ai besoin.
    Merci beaucoup.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par kalina Voir le message
    1-faut-il utiliser des theads pour l'accès à la bdd : j'utilise un singleton pour la connexion et j'ai pensé à synchroniser la méthode getInstance(),mais ça voudrait dire(je pense!)qu'un seule utilisateur à la fois aurait accès à la bdd,ça va énormément ralentir leur travail!
    Euh, si tu as 5 PC et qu'ils ont chacun leur programme, ça veut dire qu'il y a 5 programmes et que chacun a son instance, donc 5 instances. Il n'y a donc aucun problème de ce genre.

    Citation Envoyé par kalina Voir le message
    2-vaut-il mieu laisser la chose telle qu'elle et faire régulièrement l'import et l'export des données de tous le monde, ça m'enchante pas non plus!
    Une BDD centrale c'est l'usage... Mais en principe elle devrait être sur son propre ordinateur, que personne d'autre n'utilise. Éventuellement un serveur freenux plutôt qu'un PC classique.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Le mieux, c'est d'utiliser une base de données commune. Les problématiques de corruption des données que tu souleves sont des problematiques de BDD. Le mieux, c'est d'installer un PC avec la base et que tous les utilisateurs tapent dedans (si possible). Ca permet de ne pas bloquer tout le monde parce que le developpeur chez qui la BDD est installée à eteint son PC...
    Avoir une base commune permettra aussi d'etre plus réactif (une modif faite par 1 personne est immediatement visible par les autres) et plus simple (comment gerer une modif d'un meme enregistrement par 2 utilisateurs différents lors de l'intégration dans le cas de 5 BDD qui sont sur chaque poste ?).

    Quand aux modifications dans ton code, dans la plupart des cas, ca ne change rien de taper dans une base locale ou distante (seulement la chaine de connexion). Mais bon, ca dépend du programme. On peut imaginer un programme qui part du principe qu'il est seul au monde et qui bug lorsqu'un utilisateur lit la base pendant qu'un autre modifie un enregistrement. Mais bon, ca doit etre plutot rare...

  4. #4
    Membre expérimenté Avatar de kalina
    Femme Profil pro
    Développeur Java
    Inscrit en
    Avril 2009
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2009
    Messages : 220
    Par défaut
    Bonjour, et merci pour vos réponses.
    Euh, si tu as 5 PC et qu'ils ont chacun leur programme, ça veut dire qu'il y a 5 programmes et que chacun a son instance, donc 5 instances. Il n'y a donc aucun problème de ce genre.
    je suis d'accord.
    Une BDD centrale c'est l'usage... Mais en principe elle devrait être sur son propre ordinateur, que personne d'autre n'utilise. Éventuellement un serveur freenux plutôt qu'un PC classique.
    d'accord aussi, mais reste le problème de conflit de connées!
    Le mieux, c'est d'utiliser une base de données commune. Les problématiques de corruption des données que tu souleves sont des problematiques de BDD
    d'accord, mais comment les régler? à noter que je préfèrerai n'utiliser ma bdd que comme source de données,mais s'il faut passer par là, je le ferai
    Avoir une base commune permettra aussi d'etre plus réactif (une modif faite par 1 personne est immediatement visible par les autres
    c'est exactement ce que je veux! mais avec des données cohérentes! mais vous semblez minimiser la chose, dois-je en faire autant?
    merci.

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    On comprend pas c'est quoi pour toi cohérent et incohérent ?

    Tu as 5 utilisateurs et chacun a ses propres données. Chacun peut voir les données des autres, et chacun peut modifier ses propres données.
    Ça veut dire que les données de chaque personne n'existent qu'en un exemplaire dans la BDD centrale, donc pas d'incohérence ici. Et qu'elles sont copiées sur demande vers chaque PC qui les demande, mais il suffit de ne pas les garder et juste les redemander à chaque fois, et il n'existe pas d'incohérence.

    Alors de quoi tu parles ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre expérimenté Avatar de kalina
    Femme Profil pro
    Développeur Java
    Inscrit en
    Avril 2009
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2009
    Messages : 220
    Par défaut
    ben, par exemple il va arriver souvent que les utilisateurs insèrent des enregistrements tous en même temps dans la même table!(surtout si la clé de l'enreg est calculée à partir du nombre total des enreg de la table!)qu'est ce qui va en résulter? c'est de ça que je parle. Mais il y a surement des détails qui m’échappent, c'est bien pour ça que je demande de l'aide!
    merci pour vos réponses.

  7. #7
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Citation Envoyé par kalina Voir le message
    d'accord aussi, mais reste le problème de conflit de connées!
    C'est quoi le conflit de données pour toi ?
    Si c'est l'accès en modification en meme temps qui pourrait corrompre la base, alors c'est bien la base de données qui s'occupe de gérer ca. Et Oracle à un petit peu d’expérience en ce domaine, il ne devrait pas y avoir de soucis.

    Le probleme classique de conflit, c'est lorsque 2 utilisateurs affichent une meme fiche pour la modifier puis que l'un d'eux valide une modification. Que faire lorsque le 2e validera sa modif ? Dans ce cas, c'est à ton programme de définir le comportement voulu (afficher un message indiquant la modif, ne changer que les champs qui ont été modifiés, ...)

  8. #8
    Membre expérimenté Avatar de kalina
    Femme Profil pro
    Développeur Java
    Inscrit en
    Avril 2009
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2009
    Messages : 220
    Par défaut
    Citation Envoyé par hwoarang Voir le message
    C'est quoi le conflit de données pour toi ?
    Si c'est l'accès en modification en meme temps qui pourrait corrompre la base, alors c'est bien la base de données qui s'occupe de gérer ca. Et Oracle à un petit peu d’expérience en ce domaine, il ne devrait pas y avoir de soucis.
    donc si je comprends bien je n'est pas à m'en mêler.
    Citation Envoyé par hwoarang Voir le message
    Le probleme classique de conflit, c'est lorsque 2 utilisateurs affichent une meme fiche pour la modifier puis que l'un d'eux valide une modification. Que faire lorsque le 2e validera sa modif ? Dans ce cas, c'est à ton programme de définir le comportement voulu (afficher un message indiquant la modif, ne changer que les champs qui ont été modifiés, ...)
    d'accord, mais comment mon programme va savoir qu'il y a eu une modif?
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Chriffrer les données d'une BDD sous Access 2003
    Par megatoune dans le forum Sécurité
    Réponses: 3
    Dernier message: 26/01/2008, 23h25
  2. transferer les donnes d'une BDD vers un fichier XML?
    Par bylka dans le forum XQUERY/SGBD
    Réponses: 6
    Dernier message: 12/11/2007, 09h11
  3. Afficher et modifier les données d'une bdd
    Par gathe77 dans le forum ASP
    Réponses: 16
    Dernier message: 29/08/2007, 16h19
  4. Réponses: 6
    Dernier message: 04/12/2006, 10h22
  5. [MySQL] Une liste déroulante affichant les données d'une requête SHOW par ordre alphabétique
    Par jack_1981 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 22/12/2005, 15h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo