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

Bases de données Delphi Discussion :

Base de données embarquées protégées


Sujet :

Bases de données Delphi

  1. #1
    Invité
    Invité(e)
    Par défaut Base de données embarquées protégées
    Bonjour,

    je cherche une base de données embarquée protégée. SQLite ne me convient pas : je ne veux pas seulement protéger (crypter) les champs mais "protéger" la structure.

    MySQL, FireBird ou autre permettent-ils cela sachant que j'ai besoin du transactionnel ?

    Merci.
    Dernière modification par Invité ; 09/05/2015 à 09h46.

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    Bonjour Gilles,

    Je ne sais pas si vous avez vu les extensions payantes de SQLite, dont The SQLite Encryption Extension (SEE) et ZIPVFS.

    La solution que vous cherchez est-elle multi-plateforme ou limitée à Windows ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Non je ne connaissais pas ces options.

    Pour augmenter la fluidité de mes applis, j'utilise une base hébergée et une base locale sous Win, Mac Os... et Nux. J'utilise déjà SQLite mais en :memory:. Or si la connexion sur le serveur hébergé au démarrage de l'appli est impossible, je dois pouvoir utiliser la base locale. Evidemment avec une base:memory:, c'est très compliqué.

    Donc je cherche une solution plus simple... et surtout multi IDE : Windev, Delphi et Qt 5.

    Merci pour votre aide.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re-Bonjour,

    J'ai parcouru les liens. Je ne connaissais pas. J'avais essayé une solution Open-Source, il y a quelques années. Mais je n'ai jamais pu la faire fonctionner. Les prix me semblent exorbitants.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut
    Pourquoi ne pas mettre la BDD SQLite dans une archive encryptée (zip, 7z, ... ?)

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    avec le zip, cela fonctionnerait comment ? Les Grids sont connectées à la base locale. Ce qui suppose d'utiliser directement la base.

    Le cheminement est celui-là :
    Au démarrage, chargement de la base MariaDB hébergée dans une SQLite:memory: (évidemment locale).
    Tout le logiciel fonctionne alors sur cette SQLite:memory:
    Ceci est compatible quelque soit l'IDE utilisé et l'OS utilisé...
    Mais la base SQLite:memory: présente 2 défauts : l'utilisation de la mémoire et sa non persistance. Pour l'instant, j'ai bien une solution de secours : une sauvegarde de la base dans un fichier crypté... Le seul problème est la mise à jour de ce fichier : soit j'utilise un thread pour conservé la fluidité mais il peut alors se désynchroniser, ou alors je l'inclus dans le transactionnel... et adieu la fluidité.
    Dernière modification par Invité ; 09/05/2015 à 11h27.

  7. #7
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    SQLite possède une interface commune nommée VFS (Virtual File System) vis-à-vis des différents OS.

    Il permet aussi d'enregistrer un nouveau VFS, et même de le définir comme VFS par défaut.

    Il doit être possible de faire cet enregistrement avant l'initialisation des composants d'accès aux données (à vérifier).

    Pour peu qu'ils n'utilisent (à vérifier) que la fonction d'ouverture par défaut, qui ne spécifie pas de VFS, on a donc la possibilité "d'intercaler" notre propre interface vis-à-vis des fonctions de lecture/écriture de l'OS, intégrant un cryptage.

    J'ai développé une interface personnelle minimale pour SQLite intégrant sous Windows Desktop 32 et 64 Bits une solution simple de cryptage sur ce principe. Elle est en phase de finalisation (depuis longtemps...), en vue de faire un tuto. Si cela vous intéresse à titre d'illustration du principe, on pourra échanger par MP.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Pour l'instant, je fais le tour de la question.

    En Embedded, il y a MySQL que je n'arrive pas à exploiter avec Delphi, FireBird que je ne connais pas (mais je vais contacter Serge), PostgreSQL qui en version Embedded n'en est pas réellement une (mais je dispose d'une méthode d'installation et de configuration silencieuse totalement automatisée de pgSQL) et évidemment SQLite.

    SQLite : Cette solution présente de nombreux avantages : elle fonctionne sous Delphi et Qt/C++ . J'utilise déjà un encode64 sur les blobs... Je ne vois pas de ralentissement significatif mais avec ces 2 environnements de développement, on peut s'y attendre. Je l'utilise également en Windev sans problème. Mais j'aimerais en effet mieux protéger les tables. J'étais en train de me demander s'il existe des fonctions de dump sous SQLite.

    Pour les autres solutions citées, je n'ai pas de driver sous Windev à moins que le forum PCSOFT ne me renseigne... Mais en général, j'ai peu de réponses. Et en plus, je ne sais pas tester. Comment fabrique-t-on une base embedded ?

    Bon, on va à la pèche... à l'info.

  9. #9
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par selzig Voir le message
    En Embedded, ... FireBird que je ne connais pas (mais je vais contacter Serge),
    Bonjour,

    tu oublies Interbase (IBTOGO en est une version embedded) avantage : tourne sur android et Ios à vérifier mais normalement le cryptage est possible
    Quant à Firebird la version 2.5 n'a toujours pas de cryptage inclus (il est toujours possible de recompiler les sources, avantage de l'open source, pour en inclure un) la prochaine version (3 en Beta) proposera le cryptage , ce qu'il y a de sur : embedded tourne sur Win,OSX , j'ai lu qu'il était possible d'avoir une version embedded pour Androïd et IOS. A mon avis , il faudrait attendre la release officielle de Firebird 3 mais : c'est possible
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour Serge,

    Solution malheureusement peu portable. Interbase est à Delphi ce qu'HyperFile est à Windev : "propriétaire" et confidentiel.
    L'installation d'un driver ibase en Qt est tortueuse. J'ose un faux lien en l'espérant pérenne [https://www.linkedin.com/grp/post/1531497-5966618666027012097] en attendant de lire les règles du jeu exactes que j'ai demandé à un modérateur de me préciser [C'est quoi un lien pérenne ?]
    Et sous Windev, il faut l'attaquer en OLEDB puisqu'il n'y a pas de connecteur natif. Ce qui pénalise le développement.

    Sous SQLite, j'ai compilé les sources de SQLCipher. Si j'ai bien compris la licence, les sources sont open-source et tu peux les compiler et les utiliser gratuitement. Sinon, si tu récupères les binaries chez SQLCipher tu dois payer 2000$. Je ne me suis pas trompé d'un zéro. Ensuite, tu définis dans les PRAGMA que tu utilises cipher et une clé.
    Pour l'instant avec ma compilation, j'accède bien à la base mais impossible de l'encoder !

    Bonne fin de WE.

  11. #11
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    re,
    Interbase est à Delphi ce qu'HyperFile est à Windev : "propriétaire" et confidentiel.
    là je m'insurge en faux du moins pour le "propriétaire" même si Interbase est étroitement liée aux produits RadStudio (Delphi,C++ etc...) via des composants
    pour le confidentiel ... c'est plus difficile à définir : les gens heureux n'ont pas d'histoire en est-il de même pour des utilisateurs heureux ?
    bien sur si le confidentiel fait référence aux SGBD chez les hébergeurs là , y a pas photo, la question serait plutôt pourquoi ont-ils choisis MySQL qui me semble loin d'être le SGBD parfait

    L'installation d'un driver ibase en Qt est tortueuse.
    J'ai pourtant réussi sans trop de difficulté à attaquer une base Firebird (donc en gros identique à Interbase) sans difficultés "majeures" soit je suis très fort (doute) soit ce n'est pas si difficile que cela en à l'air, il suffit de trouver le bonne bibliothèque serait plutôt la bonne raison n'oublies pas que Interbase , comme Firebird sont écrit en C(++?)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour Serge,

    Je savais que j'allais commettre un impair en "minorant" Interbase.

    Pour Qt, ce n'est pas une question de "force" [je n'émets aucune réserve] mais d'environnementS. Je n'ai pas essayé et il est peu probable que je tente l'intégration du driver faute de temps. Mais je doute compte tenu de ce que j'ai lu que son usage soit si aisé que cela... notamment parce que je ne sais pas si le driver est intégré "nativement" (ie dans les directives de compilation) à l'environnement. Si tel n'est pas le cas, il faut probablement recompiler l'ensemble (enfin je parle de ma version 64 bits sous MinGW-w64). Tu sais bien que je n'accepte pas de produire des exe 32 pour un Win64. Idem pour Mac OS... et à voir pour Linux.

    Propriétaire, il l'est. Je parle d'Interbase. Le domaine public, c'est FireBird mais tu m'as précisé que l'encryptage de la version embedded était improbable.

    Confidentiels, l'un comme l'autre... Je le suppose.

    Pour l'instant ma conclusion est qu'en utilisant Interbase Embedded, je gagne avec Delphi et me complique probablement (sûrement ?) la vie avec Qt et Windev. Evidemment, vu que c'est un fonctionnement local, rien n'empêche d'utiliser Interbase Embedded pour Delphi, HyperFile Classic pour Windev, et je ne sais pas quoi pour l'instant en Qt... Mais les requêtes ne seront pas trop portables... Je cherche encore un peu. Mais il est vrai que si Delphi me suffisait, je n'hésiterais pas un instant à retenir InterBase. Mais c'est un pari trop audacieux pour moi.

    SQLite tient la corde pour l'instant... Il faut que j'arrive à encrypter non pas au niveau de l'IDE mais au niveau de SQLite lui-même.

  13. #13
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Re,
    Propriétaire, il l'est. Je parle d'Interbase.
    on n'a pas la même définition du mot je pense
    Le domaine public, c'est FireBird mais tu m'as précisé que l'encryptage de la version embedded était improbable.
    je me suis mal exprimé. Il est possible d'inclure un cryptage béton dans firebird 2.5 (je garde sous le coude la méthode au besoin) pour peu de recompiler Firebird en y ajoutant un cryptage. Un cryptage sera/est intégré avec la version 3, mais la version 3 est en Beta 2 pas encore en release stable
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  14. #14
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour Gilles,

    Via une autre discussion j'ai découvert SQLite et effectivement comme tu le dis
    Citation Envoyé par Selzig
    SQLite tient la corde pour l'instant... Il faut que j'arrive à encrypter non pas au niveau de l'IDE mais au niveau de SQLite lui-même.
    avec Firedac je l'ai même encryptée sans soucis un bémol toutefois, selon la documentation, le cryptage n'est pas possible sous Mac puisque seulement possible (avec Firedac) avec les bibliothèques statiques
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

Discussions similaires

  1. Base de données embarquée sous Windows
    Par fawzi dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 19/10/2006, 18h31
  2. [C#]Base de données "embarquée"
    Par archeon dans le forum Windows Forms
    Réponses: 2
    Dernier message: 23/05/2006, 12h17
  3. Base de données embarquée
    Par RICAUD dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 14/07/2005, 08h37
  4. ERREUR DE CONNEXION à une base de donnée ACCESS protégée
    Par unionriton dans le forum Bases de données
    Réponses: 4
    Dernier message: 09/05/2005, 09h35
  5. Base de données embarquée sous Windows
    Par bouiboui dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 12/08/2004, 10h38

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