Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQLite oder ähnliches (https://www.delphipraxis.net/178140-sqlite-oder-aehnliches.html)

Catbytes 19. Dez 2013 15:13

Datenbank: SQLite • Version: 3 • Zugriff über: FireDAC

SQLite oder ähnliches
 
Hallo,

ich programmiere gerade ein kleines Programm und benötige eine Datenbank dazu.

Ich habe mich für SQLite entschieden, da sie schnell und einfach zu gebrauchen ist und vor allem ohne Server aus kommt. Das Problem: Es sind teilweise sehr sensible Daten, die gespeichert werden. Leider kann SQLite nicht mit einem Benutzernamen/Passwort geschützt bzw. verschlüsselt werden.

Auch die Verschlüsselung der Daten selbst, wäre nicht optimal, da ja sonst die Abfragen auf die verschlüsselten Daten zugreifen.

Gibt es eine ähnliche Datenbank mit SQL-Syntax, die ohne Server auskommt, mit Delphi steuerbar und mit Benutzerschutz bzw. Verschlüsselung auskommt?

scrat1979 19. Dez 2013 15:15

AW: SQLite oder ähnliches
 
AbsoluteDatabase, hier lässt sich die Datenbank mit einem Passwort verschlüsseln. Ist auch sonst wirklich eine Empfehlung wert!

pmoegenb 19. Dez 2013 16:02

AW: SQLite oder ähnliches
 
Zitat:

Zitat von Catbytes (Beitrag 1240393)
Gibt es eine ähnliche Datenbank mit SQL-Syntax, die ohne Server auskommt, mit Delphi steuerbar und mit Benutzerschutz bzw. Verschlüsselung auskommt?

Firebird Embeded

Sir Rufo 19. Dez 2013 16:42

AW: SQLite oder ähnliches
 
Es gibt ein SQlite3 Framework von Synopse eingebettet in mORMot, dass mit verschlüsselten Datenbanken arbeiten kann.

Das ORM muss man dabei nicht verwenden

Perlsau 19. Dez 2013 17:30

AW: SQLite oder ähnliches
 
Zitat:

Zitat von Catbytes (Beitrag 1240393)
Auch die Verschlüsselung der Daten selbst, wäre nicht optimal, da ja sonst die Abfragen auf die verschlüsselten Daten zugreifen.

Du könntest die Daten beim Programmstart in ein ClientDataSet entschlüsseln und bei Programmende wieder verschlüsselt in der DB speichern. Alle Aktionen während des Programmlaufs finden dann mit den entschlüsselten Daten im ClientDataSet statt.

blackfin 19. Dez 2013 21:48

AW: SQLite oder ähnliches
 
Zitat:

Firebird Embeded
Seit wann kann die Verschlüsselung? Das wäre mir neu.
Wobei der Sinn von "lokale Datenbank mit Verschlüsselung" auf fremden (Kunden)-Computern eh äußerst fraglich ist... :)
Meine Meinung ist, dass bei jeder Datenbank, die lokal irgendwo bei jemandem Fremden liegt und ein direkter Dateizugriff möglich ist, bei der zudem auch noch ein Programm ausgeliefert wird, das diese Entschlüsseln kann, jede Bemühung der Verschlüsselung eh sinnlos ist.

Perlsau 20. Dez 2013 04:08

AW: SQLite oder ähnliches
 
Zitat:

Zitat von blackfin (Beitrag 1240434)
Seit wann kann die Verschlüsselung? Das wäre mir neu.

Bislang kann Firebird das nicht. Ab Version 3.0 soll das angeblich ein neues Feature sein ...

Zitat:

Zitat von blackfin (Beitrag 1240434)
Wobei der Sinn von "lokale Datenbank mit Verschlüsselung" auf fremden (Kunden)-Computern eh äußerst fraglich ist... :)
Meine Meinung ist, dass bei jeder Datenbank, die lokal irgendwo bei jemandem Fremden liegt und ein direkter Dateizugriff möglich ist, bei der zudem auch noch ein Programm ausgeliefert wird, das diese Entschlüsseln kann, jede Bemühung der Verschlüsselung eh sinnlos ist.

Gerade bei einer Firebird-DB nützen Username und Passwort gar nichts, sobald ich die FDB-Datei innerhalb eines Systems mit installiertem Firebird-Server öffne und mein Masterpasswort eingebe. Da muß man dann eben selbst verschlüsseln, z.B. mit DCPcrypt ...

Catbytes 20. Dez 2013 07:07

AW: SQLite oder ähnliches
 
Zitat:

Zitat von Sir Rufo (Beitrag 1240415)
Es gibt ein SQlite3 Framework von Synopse eingebettet in mORMot, dass mit verschlüsselten Datenbanken arbeiten kann.

Ja das habe ich auf der Seite gesehen (http://www.hwaci.com/sw/sqlite/prosupport.html). Allerdings sind mir die 2.000$ für dieses Projekt dann doch zu teuer.

Zitat:

Zitat von Perlsau (Beitrag 1240417)
Zitat:

Zitat von Catbytes (Beitrag 1240393)
Auch die Verschlüsselung der Daten selbst, wäre nicht optimal, da ja sonst die Abfragen auf die verschlüsselten Daten zugreifen.

Du könntest die Daten beim Programmstart in ein ClientDataSet entschlüsseln und bei Programmende wieder verschlüsselt in der DB speichern. Alle Aktionen während des Programmlaufs finden dann mit den entschlüsselten Daten im ClientDataSet statt.

Es geht um ein Finanzprogramm. Das Programm selbst hat ein Benutzersystem mit Rechten. Bringt natürlich nichts, wenn jemand die Datenbankdatei mit einem simplen Texteditor öffnen kann und die Rohdaten vor sich hat. Wenn er auch noch den Dateiheader sieht, weiß er, daß es SQLite ist und besorgt sich einen entsprechenden Viewer und hat alle Daten vor sich.

Es geht mir nicht darum, die Daten vor der NSA zu schützen, sondern lediglich die Neugierigen davor abzuhalten, zu neugierig zu sein.
Wer Daten lesen will kommt mit genügend krimineller Energie meist zum Ziel.

Edit: Huch - falsch zitiert. Das sollten beim Kommentar von Blackfin stehen :)

pmoegenb 20. Dez 2013 08:53

AW: SQLite oder ähnliches
 
Zitat:

Zitat von blackfin (Beitrag 1240434)
Zitat:

Firebird Embeded
Seit wann kann die Verschlüsselung? Das wäre mir neu.

Ich habe den folgenden Satz als entweder oder und nicht als sowohl als auch aufgefasst.
Zitat:

Zitat von Catbytes (Beitrag 1240393)
Gibt es eine ähnliche Datenbank mit SQL-Syntax, die ohne Server auskommt, mit Delphi steuerbar und mit Benutzerschutz bzw. Verschlüsselung auskommt?


Perlsau 20. Dez 2013 09:09

AW: SQLite oder ähnliches
 
Zitat:

Zitat von Catbytes (Beitrag 1240474)
Es geht um ein Finanzprogramm. Das Programm selbst hat ein Benutzersystem mit Rechten. Bringt natürlich nichts, wenn jemand die Datenbankdatei mit einem simplen Texteditor öffnen kann und die Rohdaten vor sich hat. Wenn er auch noch den Dateiheader sieht, weiß er, daß es SQLite ist und besorgt sich einen entsprechenden Viewer und hat alle Daten vor sich.

Dann mußt du wohl oder übel die Verschlüsselung in der Anwendung vornehmen. Das mache ich z.B. mit einem ClientDataset, das die verschlüsselten Einträge aus dem korrespondierenden Dataset, das mit der DB verbunden ist, holt und die verschlüsselten Einträge dann entschlüsselt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:00 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz