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

PostgreSQL Discussion :

CHECKSUM dans PostgreSQL


Sujet :

PostgreSQL

  1. #1
    Membre habitué
    Inscrit en
    Décembre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 10
    Par défaut CHECKSUM dans PostgreSQL
    Bonjour,
    je souhaite intégrer les checksum dans postgreSQL pour sécuriser, tracer et éviter la modification des données dans postgresql. En fait je veux éviter la modification des valeurs des champs. Quelqu'un a t'il une idée ? comment pourrais-je résoudre ce souci ?

    Merci !

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Bonjour,

    Je ne comprend pas bien la relation entre interdire un user de faire des updates / delete / insert (gestion de droit) et un checksum.

    Pouriez-vous développer ?

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    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 : 22 010
    Billets dans le blog
    6
    Par défaut
    Il me semble que PG propose quelques fonctions de hachage :
    https://postgresql.developpez.com/do...tion/francais/

    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/ * * * * *

  4. #4
    Membre habitué
    Inscrit en
    Décembre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 10
    Par défaut
    Salut punkoff,
    en fait je veux empêcher les modifications des données à partir de PostgreSQL. On m'a conseillé les checksum pour cela. Je demande si quelqu'un peut me donner une autre solution car j'ai fouillé comment je peux résoudre cela avec les checksum mais en vain. Je n'ai rien trouvé. Sqlpro je ne veux pas crypter les données mais pouvoir empêcher, voir tracer toutes modifications des données.

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 16
    Par défaut
    juste une question comme cela qui va surement rejoindre ce que voulait dire punkoff, mais quels sont les utilisateurs qui peuvent modifier les données ?

    je demande cela car si vous avez un utilisateur X (par exemple user_update) qui est autorisé à modifier ce qu'il veut et un utilisateur Y (par exemple user_read_only) vous dissocier les rôles de chacun et n'êtes obligé que de gérer la diffusion des informations de l'utilisateur X.

    Sinon, de mémoire, vous pouvez configurer postgresql pour qu'il log toutes les requêtes de modification via l'option "log_statement" dans le fichier postgressql.conf ( plus d'info : http://www.postgresql.org/docs/9.1/i...G-LOGGING-WHAT rubrique log_statement)

    Sinon dernière solution très coûteuse en temps pour la mettre en place, ce sont les RULES qui permettent de rien faire pour un ordre donné (p.e. : create or replace rule rien_faire on update to table_a_proteger do instead nothing ) car il est nécessaire de créer autant de rules que de table à verrouiller et de supprimer/recréer les régles à chque fois que l'on veux faire une modification de contenu.

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    Citation Envoyé par valzon Voir le message
    en fait je veux empêcher les modifications des données à partir de PostgreSQL. On m'a conseillé les checksum pour cela.
    Un checksum en soi ça n'empêche rien, ça permet juste de savoir après coup qu'il y a eu modification. Et autant pour des fichiers c'est assez simple à mettre en oeuvre, autant ce n'est pas le cas dans une base de données structurée.

    Pour accorder aux utilisateurs le droit ou non de modifier les données, en SQL on utilise la commande GRANT.

    Et pour tracer les mises à jour dans des tables, on utilise plutôt la méthode des triggers qui voient passer toutes les mises à jour et peuvent les consigner dans d'autres tables.

  7. #7
    Membre éprouvé Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 892
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 892
    Par défaut
    Bonjour,

    Comme l'a dit Camaie, je pense que ce que tu cherches est le système de RULES de PostgreSQL.

    http://www.postgresql.org/docs/9.1/i...ive/rules.html

    Il s'agit en fait d'une ré-écriture automatique de requête. En principe ça doit être plus performant que les triggers ça t'évite surtout d'avoir à écrire de nouvelles fonctions.

    C'est le même mécanisme qui est utilisé pour implémenter les vues sous PostgreSQL.

  8. #8
    Membre habitué
    Inscrit en
    Décembre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 10
    Par défaut
    bonjour et merci à vous. Je pense que le système de RULE dans PostgreSQL pourra m'être utile comme suggéré par kain_tn. Mais est ce qu'il ne sera pas contournable? that is the question. En fait je veux empêcher toutes modifications et suppressions dans la table des logs de mon application. J'ai remarqué qu'il est possible de se connecter à la base de données et de supprimer les logs voir même modifier. Je souhaite mettre en œuvre une politique de sécurité rigoureuse pour pallier à cette situation.

  9. #9
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Par défaut
    Le mécanisme de droits standard de Postgre vous permet de faire ça.

    Créez un rôle pour vos utilisateurs en lui interdisant les modifications et suppressions sur la table en question (CREATE ROLE, GRANT ROLE, GRANT, REVOKE).

  10. #10
    Membre habitué
    Inscrit en
    Décembre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 10
    Par défaut
    Merci vmolines pour ton feedback. Le problème est au dessus des droits car tu vois bien qu'il y a un rôle qui te permet de créer des rôles ?!

  11. #11
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 16
    Par défaut
    il y aura toujours un rôle de superadmin dans une base sinon c'est la cata pour gérer les droits, et de plus, il y aura forcément un utilisateur qui pourra écrire dans la table de logs ne serait-ce pour la peupler régulièrement.

    Au final, seule une gestion rigoureuse des droits d'utilisateur et de diffusion des infos peut venir à bout de votre problème : verrouiller une table contre toute modification veux dire aussi que personne ne peux y écrire ce qui est antinomique avec le rôle d'une table de logs

  12. #12
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Par défaut
    Citation Envoyé par valzon Voir le message
    Merci vmolines pour ton feedback. Le problème est au dessus des droits car tu vois bien qu'il y a un rôle qui te permet de créer des rôles ?!
    Mais le role superadmin ne doit pas être utilisé par les utilisateurs finaux justement... Vous ne donnez à vos utilisateurs ou applications clientes qu'un login qui ne permet que les opérations que vous (superadmin) autorisez.

    Evidemment tout système de sécurité est contournable. Si un utilisateur vole votre mot de passe superadmin ou détruit votre serveur , il peut supprimer les données .

    Citation Envoyé par Camaie Voir le message
    il y aura toujours un rôle de superadmin dans une base sinon c'est la cata pour gérer les droits, et de plus, il y aura forcément un utilisateur qui pourra écrire dans la table de logs ne serait-ce pour la peupler régulièrement.

    Au final, seule une gestion rigoureuse des droits d'utilisateur et de diffusion des infos peut venir à bout de votre problème : verrouiller une table contre toute modification veux dire aussi que personne ne peux y écrire ce qui est antinomique avec le rôle d'une table de logs
    Si j'ai bien compris son besoin, il souhaite que la table soit en INSERT only comme vous le dites pour peupler le log. Aucun droit d'altérer des logs (DELETE, UPDATE). Les droits proposent cette restriction, je ne vois pas en quoi ce n'est pas approprié.

  13. #13
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    Citation Envoyé par valzon Voir le message
    J'ai remarqué qu'il est possible de se connecter à la base de données et de supprimer les logs voir même modifier. Je souhaite mettre en œuvre une politique de sécurité rigoureuse pour pallier à cette situation.
    Et bien il faut inverser le problème. Il ne faut pas se demander comment interdire de "modifier les données", ce qui est trop vague pour être utile, il faut se demander pour chaque compte utilisateur ou rôle ce qu'il est censé avoir le droit de faire avec la base et n'autoriser que ça.

  14. #14
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 16
    Par défaut
    Citation Envoyé par vmolines Voir le message
    Si j'ai bien compris son besoin, il souhaite que la table soit en INSERT only comme vous le dites pour peupler le log. Aucun droit d'altérer des logs (DELETE, UPDATE). Les droits proposent cette restriction, je ne vois pas en quoi ce n'est pas approprié.
    En fait que je pinaille un peu sur les mots pour la définition de "modification", mais bon ce n'est qu'un détail.

    Au final, on est d'accord sur le fait, qu'il y a au moins 2 utilisateurs (sans compter le superadmin) :
    -celui qui écrit dans la table de logs (potentiellement le superadmin mais vraiment pas conseillé)
    - et celui qui lit les données sans pouvoir les altérer.

  15. #15
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    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 : 22 010
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par valzon Voir le message
    ...Sqlpro je ne veux pas crypter les données mais pouvoir empêcher, voir tracer toutes modifications des données.
    PostGreSQL présente comme cryptographique des fonctions de hachage qui n'en sont pas...

    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/ * * * * *

Discussions similaires

  1. Insertion type monetaire dans postgresql
    Par kam81 dans le forum JDBC
    Réponses: 1
    Dernier message: 30/09/2008, 15h39
  2. Gérer les enregistrements dans PostgreSQL
    Par choko83 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 15/05/2008, 16h22
  3. cryptage dans postgresql
    Par viny dans le forum PostgreSQL
    Réponses: 11
    Dernier message: 19/11/2006, 12h38
  4. Enregistrement xml dans postgresql
    Par Ben Mbarek Houssem dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 25/04/2006, 14h08
  5. Réponses: 1
    Dernier message: 04/06/2003, 12h48

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