2016-10-13 7 views
2

Je souhaite créer une application Windows C# et stocker des données dans une base de données locale comme SQL Express (ou toute autre base de données locale). Ensuite, je veux rendre la base de données locale inaccessible directement par l'utilisateur et les données ne doivent être atteintes que par l'application Windows. En d'autres termes, j'ai besoin de quelque chose comme une fonctionnalité de "stockage isolé" mais pour stocker un plus grand volume de données structurées dans une base de données relationnelle.Stocker des données dans une base de données locale en utilisant C# Windows Application et rendre la base de données locale cachée à l'utilisateur

+3

Il est presque impossible de cacher quelque chose sur * leur * machine. Selon la base de données, certains peuvent être cryptés pour restreindre l'accès. – Plutonix

Répondre

0

Ceci est une question difficile à répondre pleinement et sans plus de détails, mais il y a quelques options pour vous d'essayer:

  • itinéraire le plus facile serait d'installer localement le serveur SQL et utiliser la fonctionnalité de chiffrement transparent des données, mais cette est disponible uniquement dans la version Enterprise Edition (ce qui signifie une licence plus coûteux)
  • SQL Server localdb ne peut pas être chiffré et je crois que sa protection par mot de passe peut être facilement contournée si quelqu'un peut accéder au fichier de base de données
  • bases de données SQLite peuvent être protégés par mot de éviter que quelqu'un ne sache pas le mot de passe acce ss
  • Il existe certaines extensions pour crypter une base de données SQLite, mais la plupart d'entre elles nécessitent une licence. Vous pouvez voir this answer pour plus d'informations
0

Il y a trois niveaux de sécurité que vous pouvez le faire comme ci-dessous: 1. Ajouter
nom d'utilisateur et mot de passe pour vous db
2. La plupart des Db embarqués ont une propre niveau de sécurité
3. utilisez System.Security.Cryptography pour protéger vos données

Et Il y a de nombreuses options de base de données intégrée à utiliser:

  1. SQLite Db qui a un fournisseur ADO.NET
    Vous pouvez l'utiliser avec SQLCipher est une extension open source à SQLite qui fournit un chiffrement AES 256 bits transparent des fichiers de base de données.
  2. LiteDB il est open source, base de données Serverless multi-plateforme livrée dans une DLL unique (moins de 200 Ko) entièrement écrit en .NET 3.5 C# code managé également soutenu
  3. Firebird il est une base de données open-source libre, et supported by Ado.Net