PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : "verteilte" Datenbank


Djon
2011-10-23, 22:10:00
Hallo!

Ich habe eine kleine Adressverwaltung geschrieben. Diese speichert die eingegebenen Adressen in einer lokalen SQLite-Datenbank ab. Es hat sich im Laufe der Zeit herausgestellt, dass mehrere Benutzer auf die Daten zugreifen möchte. Der Zugriff soll / muss nicht parallel stattfinden. Darauf hin wurde die Datenbank von einem Benutzer zum nächsten per Mail versendet. Doch dieses Verfahren ist auf Dauer nicht wirklich annehmbar. Keine kann sicher sagen, bei welchem Benutzer die aktuelle Version der Datenbank sich befindet. Ich echte Onlinedatenbank kommt leider wegen Datenschutz nicht in Frage :cool:
Welche Alternativen gibt es noch?
Ich habe mir überlegt, dass man die Datenbank verschlüsselt auf dem FTP-Server ablegt. Der Benutzer, der auf die Daten zugreifen möchte, lädt sich eine Kopie der Datenbank herunter und hinterlässt eine lock-Datei mit dem Zeitstempel auf dem FTP-Server. Am Ende wird eine neue Version der Datenbank hochgeladen und die lock-Datei gelöscht.
Könnte man dieses Verfahren noch weiter optimieren? :freak:

Gruß Djon

Exxtreme
2011-10-23, 22:14:09
Lokal und verteilen ist blöd. ;)

Habt ihr VPN-Zugänge oder so?

Djon
2011-10-23, 22:14:50
Nein, leider kein VPN-Zugang

#44
2011-10-23, 22:15:48
Ich habe mir überlegt, dass man die Datenbank verschlüsselt auf dem FTP-Server ablegt. Der Benutzer, der auf die Daten zugreifen möchte, lädt sich eine Kopie der Datenbank herunter und hinterlässt eine lock-Datei mit dem Zeitstempel auf dem FTP-Server. Am Ende wird eine neue Version der Datenbank hochgeladen und die lock-Datei gelöscht.

Und wie genau unterscheidet sich das nun (datenschutztechnisch) von einer normalen Datenbank? Also natürlich bis auf den Teil der bei mir folgende alternierende Gesichtsausdrücke hervorgerufen hat: :freak: :confused: :eek: :|

Exxtreme
2011-10-23, 22:17:46
Nein, leider kein VPN-Zugang
Dann bleibt wohl kaum was anderes übrig als das Ding auf einen FTP hochzuladen.

PatkIllA
2011-10-23, 22:19:03
Zugriff über einen per FTP oder WebDav freigegebenen Ordner im Netz.
Dabei könnte die Verbindung verschlüsselt sein. Der .NET Wrapper kann auch Verschlüsselung von SQLite direkt.

Djon
2011-10-23, 22:20:41
Eine normale Datenbank ist irgendwo gehostet. Kostenlose Angebote gibt es leider nicht soooo viele und wir wollten vorerst kein Geld für einen Hoster ausgeben. Ein FTP-Server könnte man bei dem E-Mail-Anbieter kostenlos bekommen.

Gruß Djon

Ganon
2011-10-23, 22:21:11
Eine Online-Datenbank kommt wegen Datenschutz nicht in Frage, aber die DB per Mail rumschicken ist erlaubt? xD

Naja, wie auch immer:

SSH-Tunnel und dann ein RDBMS (PostgreSQL, MySQL, ...) nehmen?

edit:

Datenbank der kostenlosen Anbieter verschlüsseln?

Djon
2011-10-23, 22:36:14
Ich habe mir vor ca. 6 Monaten auf die Suche nach kostenlosen Anbietern einer MySQL-Datenbank gemacht... Leider bin ich nicht wirklich fündig geworden. Meistens war die Verbindung nicht wirklich toll, das Commit der Daten nahm eine halbe Ewigkeit in Anspruch :frown:

Gruß Djon

#44
2011-10-23, 22:45:30
Ok, du willst also mit absolut minimalen Ressourcen arbeiten, weil es ein kleines Privatprojekt ist... Zudem willst du keine Unverschlüsselten Daten bei dritten liegen haben.

-Lokale Datei mit FTP-Datei vergleichen und nur neu Laden wenn die auf dem FTP neuer ist. Vorrausgesetzt, dass lässt sich ohne kompletten DL herausfinden.
-Nur locken wenn auch Schreibzugriff gebraucht wird. Dafür einen Editiermodus im Client. Beim Verlassen des "Editiermodus" -> Upload. So kann zumindest lesend parallel gearbeitet werden und die Zeiten, während denen ein Lock besteht werden minimiert.
-Nur Uploaden, wenn auch wirklich Änderungen stattgefunden haben.
-Editiermodus evtl. bei Inaktivität automatisch beenden. "Ich kann da gerade nicht arbeiten, weil XXX das Dokument noch auf seinem Rechner offen hat/eingeloggt ist/etc. und er gerade Mittag macht" sind Sätze die man eigentlich nicht hören will ;)

Wie groß ist die DB?

PatkIllA
2011-10-23, 22:48:27
Man kann FTP Ordner auch direkt als Laufwerk mount und Anwendungen können da wie auf lokale Dateien zugreifen. Ich bin mir nicht sicher wie SQLite auf die Latenz reagiert, aber es müsste gehen.
Dann braucht man auch nichts vergleichen locken oder sonst was.

#44
2011-10-23, 22:53:05
Dann braucht man auch nichts vergleichen locken oder sonst was.
Und Windowsdas OS löst dir Schreibkonflikte/Inkonsistenzen die Entstehen wenn zwei User gleichzeitig arbeiten?

PatkIllA
2011-10-23, 22:54:49
Und Windowsdas OS löst dir Schreibkonflikte die Entstehen wenn zwei User gleichzeitig arbeiten?
SQLite lockt die Datei vor anderen Schreibzugriffen bevor geschrieben wird. Da muss das OS zwar mitmachen, die Initiative geht von SQLite aus. Ist die Frage ob das über ftp geht.

#44
2011-10-23, 22:57:38
SQLite lockt die Datei vor anderen Schreibzugriffen bevor geschrieben wird. Da muss das OS zwar mitmachen, die Initiative geht von SQLite aus. Ist die Frage ob das über ftp geht.
Ich würde davon ausgehen, dass ein so eingebundener FTP die Datei downloaded, lokal vorhält und anschließend wieder uploaded. FTP bleibt nunmal FTP - egal wie raffiniert das GUI das verstecken möchte.

universaL
2011-10-29, 08:49:22
ohne es jetzt genau sagen zu können, da ich es noch nie benutzt habe. aber das wäre doch was für couchdb? ;-)

RMC
2011-10-29, 10:12:51
Also natürlich bis auf den Teil der bei mir folgende alternierende Gesichtsausdrücke hervorgerufen hat: :freak: :confused: :eek: :|

Das auch. Aber noch alarmierter bin ich über den Gedankengang die Nutzungsweise einer Datenbank auszuhebeln nur um sie selbst dann (schlechter) nachzubauen. Und schließlich sie aus "Datenschutzgründen" per Email zu verteilen. Sehr bedenklich.

Djon
2011-11-10, 21:29:34
Hallo!

So, habe mir jetzt für die Variante mit dem FTP-Server entschieden. Habe mir jetzt ein Account bei Funpic.de geholt. Leider musste ich feststellen, dass der Verbindungsaufbau ab und zu relativ lange braucht. Kann einer von euch mir einen guten kostenlosen FTP-Account empfehlen?


Gruß Djon

Berni
2011-11-13, 16:01:19
Ich verstehe dein Datenschutzargument überhaupt nicht. Die Daten liegen jetzt ja genauso auf dem FTP-Server.
Mach doch einfach eine Onlineverwaltung mit PHP und MySQL (gibts sicher auch schon fertige). Das Ganze versiehst du dann mit Passwortschutz per htaccess und das sollte dann ausreichend sicher sein für ein paar Privatnutzer. Wenn nötig könntest du auch besonders sensible Werte in der Datenbank verschlüsselt abspeichern (Passwort wird dann vom Client übergeben und natürlich nicht auf dem Server gespeichert).