Ich habe mich in letzter Zeit ein wenig mit SQLite beschäftigt. Wie bereits vor einigen Tagen geschrieben, ist die Datenbank absolut performant - wobei ich gerade dabei bin mit dem SQL Server Mobile hoffentlich in ähnliche Geschwindigkeits-Dimensionen vorzustoßen, mehr demnächst - aber sie hat, wie sich herausgestellt hat, einen großen Nachteil: es gibt per default keine Möglichkeit die darin gespeicherten Daten abzusichern, da sich kein Passwort setzen lässt.
Die erste überlegung, die Datenbankdatei einfach umzubenennen habe ich gleich wieder verworfen, da ein Blick in die erste Zeile der mit Notepad geöffneten Datenbankdatei genügt, um zu wissen um was es sich handelt: "SQLite format 3". Dazu kann man die Daten quasi noch im Klartext herausholen, oder die Datenbank einfach mit einem geeigneten Tool (etwa SQLite Database Browser) öffnen.
Nun gibt es insgesamt 3 Möglichkeiten, die Datenbank abzusichern:
1. Man kauft eine um Verschlüsselung erweiterte Variante von Dr. Richard Hipp - dem Erschaffer von SQLite. Der Spaß kostet dann 2000 Dollar.
2. Man kauft SQLcrypt.
3. Man benutzt SQLiteSecure, eine kostenlose Implementierung, die sich aber nach Autor-Angaben noch im Alpha-Stadium befindet.
Letzteres habe ich gestern mal ins Auge gefasst, dann aber mangels ausreichender C++-Kenntnisse wieder verworfen. Die benötigt man nämlich, um die sicherheitsbezogenen Erweiterungen in die SQLite-Version zu implementieren, die im ADO.NET 2.0 Provider verwendet wird. Aber ich konnte wenigstens Robert Simpson, den Entwickler des ADO.NET Providers für SQLite, dazu anregen, sich der Sache im nächsten Jahr mal anzunehmen.
Das heißt, momentean gibt es da keine kostengünstige Lösung für die Verwendung mit .NET, aber im besten Fall könnte die Welt da in ein paar Wochen schon ganz anders ausschauen :)