2016-10-13 9 views
2

Ich möchte eine C# Windows-Anwendung erstellen und Daten in einer lokalen Datenbank wie SQL Express (oder einer anderen lokalen DB) speichern. Dann möchte ich lokale DB unzugänglich direkt vom Benutzer machen und Daten sollten nur von Windows-Anwendung erreicht werden.Speichern Sie Daten in der lokalen DB mit C# Windows-Anwendung und machen lokale Datenbank versteckt von Benutzer

Mit anderen Worten, ich brauche etwas wie "Isolated Storage" -Funktionalität, aber für die Speicherung von größeren Mengen strukturierter Daten in einer relationalen Datenbank.

+3

Es ist fast unmöglich, etwas auf * ihrer * Maschine zu verstecken. Abhängig von der DB können einige verschlüsselt werden, um den Zugriff zu beschränken. – Plutonix

Antwort

0

Dies ist eine schwierige Frage, ohne weitere Details vollständig zu beantworten, aber es gibt einige Möglichkeiten für Sie, um zu versuchen:

  • der einfachste Weg wäre SQL Server lokal zu installieren und das Transparent Data Encryption-Funktion verwenden, aber dies ist nur in der Enterprise Edition verfügbar (was eine teurere Lizenz bedeutet)
  • SQL Server LocalDb kann nicht verschlüsselt werden und ich glaube, dass sein Passwortschutz leicht umgangen werden kann, wenn jemand auf die Datenbank zugreifen kann
  • SQLite Datenbanken können mit Passwort geschützt werden Vermeiden Sie jemanden, der das Passwort acce nicht kennt sse sie
  • Es gibt eine Erweiterung, um eine SQLite-Datenbank zu verschlüsseln, aber die meisten von ihnen erfordern eine Lizenz. Sie können this answer für weitere Informationen
0

Es ist ein Drei-Maß an Sicherheit sehen Sie es wie die unten tun können:
1. Fügen Sie Benutzernamen und Passwort Sie
db 2.most eingebettet Db eine eigene haben
Sicherheitsstufe 3. Verwendung System.Security.Cryptography auf Ihre Daten

zu schützen, und es gibt viele Möglichkeiten von Embedded-Datenbank zu verwenden:

  1. SQLite Db mit einem ADO.NET-Provider
    Sie können es mit ist eine Open-Source-Erweiterung zu SQLite, die transparente 256-Bit-AES-Verschlüsselung von Datenbankdateien bietet.
  2. LiteDB es ist ein Open-Source, plattformübergreifende serverless Datenbank in einer einzigen DLL geliefert (weniger als 200kb) ist .NET 3.5 C# verwaltet vollständig geschrieben in Code unterstützt auch
  3. Firebird es sich um eine kostenlose Open-Source-Datenbank und supported by Ado.Net
Verwandte Themen