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

Langage SQL Discussion :

MD5 de toute la base de données


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 676
    Points : 121
    Points
    121
    Par défaut MD5 de toute la base de données
    Bonjour,

    Je suis sur la conception d'un système assez sécurisé et il faut vérifier que la base de données reste intègre et inchangée durant une période. Du coup ce que je fais c'est journaliser régulièrement le hash de la base. Pour cela j'avais pensé à sortir toutes les tables, puis à venir prendre tout leur contenu (SELECT *), ensuite concaténer les chaines de caractères et hasher le tout en MD5.
    Mais c'est assez lourd. A votre avis y a-t-il une manière de faire ça un peu optimisée ?

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,

    reste intègre et inchangée
    Avec une politique de droit assez restrictive vous ne devriez pas avoir de problème pour mettre en place ceci.

    Si vous interdisez les opérations de type DML vos données ne bougeront pas.


    De plus, selon votre SGBD, vous pouvez aussi activée un audit assez "large" afin de tracer toute modification de donnée.
    (ou une version avec trigger si pas d'audit possible)


    Sinon concernant le truc MD5, ca ne garantira en rien que vos données n'ont pas bougées.

    En effet deux valeurs sources peuvent avoir un hash md5 identique.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 676
    Points : 121
    Points
    121
    Par défaut
    Ca fait partie des obligations de la réglementation. On doit faire comme ça. Donc je n'ai pas le choix, je suis obligé de produire ces hash ! Même si c'est pas le meilleur truc à faire

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Le MD5 de la concaténation du MD5 de toutes les colonne de toutes les tables ????? ouchhh !


    Citation Envoyé par punkoff Voir le message
    Avec une politique de droit assez restrictive vous ne devriez pas avoir de problème pour mettre en place ceci.
    Ou simplement mettre la base en lecture seule.

    Citation Envoyé par punkoff Voir le message
    Sinon concernant le truc MD5, ça ne garantira en rien que vos données n'ont pas bougées.
    Bah dans un sens si : avec une telle requête, toutes les tables vont être verrouillées, donc les modifications ne seront plus possibles, et au bout de quelques heures, quand le serveur aura pris feu, le modifications ne seront plus possible non plus

    Plus sérieusement, j'aurai aussi dit l'inverse : des MD5 différents ne signifiera pas forcément qu'il y a eu de modifications, mais peut être que l'ordre de récupération des select aura changé, à moins de mettre des ORDER BY de partout sur une requête qui sera déjà monstrueuse !

  5. #5
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par Ceubex Voir le message
    On doit faire comme ça.
    Alors il serait utile de connaitre vos contraintes exactes afin de trouver la meilleure implémentation possible.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 676
    Points : 121
    Points
    121
    Par défaut
    Oui je mets des ORDER BY.

    On pourrait débattre de l'intérêt de mettre en lecture seul. Le problème c'est que si un petit malin vient, enlève la lecture seul, modifie et la remet, eh ben euh....

    De toute manière c'est comme ça, je le répète, c'est imposé de faire comme ça, donc la seule question qui se pose à moi c'est comment le faire le plus efficacement possible

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 676
    Points : 121
    Points
    121
    Par défaut
    Ma contrainte c'est de journaliser régulièrement une empreinte de l'ensemble de la base à partir d'un hash de ses données.

  8. #8
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Vu que votre base ne sera pas modifiée, vous pouvez déjà soit créer soit des vues indexées (ou ajouter une colonne calculée persistante à chaque table) faisant le calcul du MD5 de la ligne. ça sera toujours ça de gagné à chaque calcul global.

    Quel est votre SGBD ?
    et pour information, quelle est la taille de votre BDD, le nombre de tables, de colonnes et de lignes ?


    sinon, avez-vous envisagé (si ça répond à vos contraintes) de faire un hash du fichier de données (d'autres problématiques se poseraient alors, mais seraient je pense plus simples) ?

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 676
    Points : 121
    Points
    121
    Par défaut
    Eh bien en fait c'est là que ça devient drole
    La base doit être "scéllée" mais avec des exceptions. Il y a donc certains champs et parfois certaines valeurs qui ne doivent pas être vérifier en intégrité.
    De plus, j'aimerais bien précalculer les hash dans un champ mais l'ennui c'est que si qq1 modifie le champ, le hash lui ne sera pas modifier. Ainsi la ligne ne sera plus intègre mais le semblera pourtant.

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2013
    Messages : 46
    Points : 39
    Points
    39
    Par défaut
    C'est de la foutaise de dire "c'est imposé et j'ai pas le choix" moi quand mon supérieur me demande une absurdité sans nom je lui explique, s'il est pas d'accord j’écris un rapport que je communique là ou sa fait mal...

    Faire un hash de ta db n'a pas de sens... tu dis "si quelqu'un vient déverrouillé ma db faire les modif et la reverrou" sa signifie qu'il a le droit de le faire (ou alors le problème se situe justement à ce niveau) donc tu pourra jamais l'empêcher de foutre le bordel s'il en a envie... ce n'est donc pas la bonne solution.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 676
    Points : 121
    Points
    121
    Par défaut
    Désolé d'avoir des idées fixes mais ça n'est pas une idiotie de parton mais une idiotie de la loi
    C'est encore plus fort !
    Les différents systèmes de traitement doivent faire l'objet d'un scellement, c'est à dire d'un procédé permettant de déceler toute modification du système
    Quand on demande aux responsables administratifs ce que ça veut dire, ils le disent clairement, ça veut dire ça.
    Alors il est vrai qu'il est toujours possible d'aller toquer au Parlement pour faire entendre son point de vue mais moi ça ne m'amuserait pas trop. Je préfère uriner dans des violons.

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2013
    Messages : 46
    Points : 39
    Points
    39
    Par défaut
    Um... qu'appelle tu responsable administratif ? les fonctionnaires ou ceux qui sont dans ta boite ? si ce sont les fonctionnaires qui disent qu'il faut un hash... effectivement, sa va être dur de faire autrement... bien que dans mon cas, j'ai aussi eu a adapter mes logiciels aux lois et lorsque j'étais face à une aberration je leur signalait et on était parvenu à un compromis.

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 676
    Points : 121
    Points
    121
    Par défaut
    Ce sont des fonctionnaires de la CNIL. Malheureusement ceux-là n'ont pas trop la culture du compromis

  14. #14
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    et un hash MD5 du tar gzip de l'export de la base ?

    Ainsi, tu peux le revérifier quand tu veux (et même de manière automatisée par cron) et cela sera certainement moins lourd qu'un hash du résultat de toutes tes requêtes.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 676
    Points : 121
    Points
    121
    Par défaut
    Merci, ouf enfin une réponse

  16. #16
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par Ceubex Voir le message
    De plus, j'aimerais bien précalculer les hash dans un champ mais l'ennui c'est que si qq1 modifie le champ, le hash lui ne sera pas modifier. Ainsi la ligne ne sera plus intègre mais le semblera pourtant.
    Si c'est une colonne calculée, ou une colonne dans une vue, la modification d'une des autres colonnes entrainera bien la modification du hash, de façon automatique et transparente dans la transaction.

    Cela dit, dans votre texte, je ne vois nulle part la mention de hash...

  17. #17
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Ceubex Voir le message
    Désolé d'avoir des idées fixes mais ça n'est pas une idiotie de parton mais une idiotie de la loi
    C'est encore plus fort !

    Quand on demande aux responsables administratifs ce que ça veut dire, ils le disent clairement, ça veut dire ça.
    Alors il est vrai qu'il est toujours possible d'aller toquer au Parlement pour faire entendre son point de vue mais moi ça ne m'amuserait pas trop. Je préfère uriner dans des violons.
    Permettez moi de vous dire que je connais assez bien les Lois en matière de données, applications et bases de données, et je n'ai pas connaissance d'une seule Loi Française ou d'un pays de langue française imposant de calculer un hash de la totalité des données.
    Donc, donnez-nous les références de cette Loi, car je suis plus que très sceptique !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 676
    Points : 121
    Points
    121
    Par défaut
    Va ici et tu auras tout un tas de trucs dans le genre http://www.cnil.fr/documentation/del...commandations/
    Par contre ils n'imposent pas le hash dans la loi. La loi dit qu'il faut sceller la base et quand on demande à la CNIL elle dit qu'il faut faire comme ça

  19. #19
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Ceubex Voir le message
    Va ici et tu auras tout un tas de trucs dans le genre http://www.cnil.fr/documentation/del...commandations/
    Par contre ils n'imposent pas le hash dans la loi. La loi dit qu'il faut sceller la base et quand on demande à la CNIL elle dit qu'il faut faire comme ça
    Vous me balancez un lien et vous ne dites même pas dans quelle catégorie vous êtes alors qu'il existe plus de 50 entrée différente dans le liste....
    De plus iil s'agit de recommandations, rien à voir avec une Loi ! Vous êtes dans le mensonge...
    C'est du grand n'importe quoi !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  20. #20
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par Ceubex Voir le message
    On pourrait débattre de l'intérêt de mettre en lecture seul. Le problème c'est que si un petit malin vient, enlève la lecture seul, modifie et la remet, eh ben euh....
    Et si le même malin modifie la base, recalcule son hash et remplace le hash "sauvegardé en référence" par le nouveau hash ???

    Si vous partez du principe que n'importe qui peut faire n'importe quoi sur vos serveurs, alors votre problème n'a pas de solution...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Trigger sur toute la base de données
    Par helmis dans le forum Outils
    Réponses: 1
    Dernier message: 29/07/2008, 18h15
  2. Réponses: 3
    Dernier message: 21/01/2008, 11h55
  3. Réponses: 3
    Dernier message: 09/01/2008, 16h36
  4. appliquer arrière plan à toute la base de donnée
    Par jerem06340 dans le forum Access
    Réponses: 1
    Dernier message: 26/01/2006, 20h58

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