3 Stimmen

Welche Datenbank soll ich wählen?

Ich habe die folgenden Kriterien

  • Die Datenbank sollte mit einem Benutzernamen und einem Passwort geschützt sein. Es sollte nicht möglich sein, die Datenbankdatei zu kopieren und anderweitig zu verwenden, z. B. in MS Access.

  • Es wird keinen zentralen Datenbankserver geben. Jeder Rechner wird seinen eigenen Datenbankserver lokal betreiben und der Benutzer wird die Synchronisation initiieren. Das Konzept ist inspiriert von verteilten Versionskontrollsystemen wie Git. Es sollte also eine gute Replikationsunterstützung haben.

  • Eine starke Kohärenz ist nicht erforderlich. Die Benutzer werden bei Bedarf ihre Datenbanken untereinander synchronisieren. Im Falle von Konflikten sollte es möglich sein, den Konflikt zu finden und ihn (von der Anwendung aus) dem Benutzer zur Behebung zu präsentieren.

  • Überarbeitungen von Daten, falls vorhanden, z.B. die gesamte Historie der Änderungen an einer Rechnung.

  • Ich habe mich mit dokumentenorientierten Datenbanken befasst und mich für diese entschieden. Aber ich weiß nicht, was ich wählen soll.

  • Die Datenbank ist klein und wird in den nächsten Jahren (sagen wir 3 Jahren) nicht einmal 1 GB erreichen.

Sie können uns gerne eine Datenbank vorschlagen, die Ihrer Meinung nach geeignet sein könnte. Jeder Hinweis ist sehr willkommen.

Vielen Dank im Voraus.

2voto

Thilo Punkte 248982

Ich bin auf der Suche nach genau demselben. Ich habe es noch nicht gefunden. Ein interessantes Projekt in diesem Bereich ist das Projekt von Bestpractical Prophet (und den darauf aufbauenden Bugtracker SD). Ich habe allerdings keine Ahnung, wie aktiv es ist, und ich glaube nicht, dass es ein verschlüsseltes Dateiformat verwendet (aber in Ihrem Szenario wäre die Verschlüsselung der gesamten Festplatte eine praktikable Lösung).

Prophets Werbespruch liest sich in etwa so:

Eine geerdete, semirelationale, Peer-to-Peer replizierte, unverbundene, versionierte Eigentumsdatenbank mit selbstheilender Konfliktlösung.

0voto

Chris Thornton Punkte 15410

Ich habe dies getan, als ein Kunde aus einem vertikalen Markt mein ClipMate-Programm zum Speichern und Verteilen von medizinischen Daten verwenden wollte und nicht wollte, dass die Daten "in die freie Wildbahn" gelangen.
Ich habe die Verschlüsselungsfunktion der Datenbank (DBISAM von Elevatesoft, dessen Engine sich direkt in Delphi-Programme kompilieren lässt) und die "Hardware-Locking"-Funktion meines Schutz-Wrappers Armadillo genutzt.
Wenn also jemand das Programm von einem Kunden des vertikalen Marktes kauft, erhält er die App (als Download oder CD) und installiert sie. Nach der Installation wird ein Registrierungsdialog angezeigt, der den "Hardware-Fingerabdruck" des Kunden anzeigt (wie von Armadillo berichtet). Dieser wird aus der Ethernet-Adresse, der CPU-Seriennummer, der Festplattenseriennummer usw. abgeleitet, und es kann sein, dass ich mich in einigen Punkten irre, aber das ist die allgemeine Idee. Nach der Anmeldung wird ein Schlüssel generiert, der nur für diese Endbenutzer/Maschine-Kombination gilt. Der Registrierungsschlüssel "entsperrt" die Datenbank, die verschlüsselt ist, und der Verschlüsselungsschlüssel ist Teil des Registrierungscodes. Ohne den Schlüssel kann der Endnutzer die Daten nicht nutzen und sie nicht weitergeben oder übertragen, ohne einen weiteren Freischaltcode zu erhalten. Das ist ziemlich streng. Für eine preisgünstige App wäre das zu ärgerlich, aber sie verlangen viel dafür, also ist es das wert.

Wie auch immer, um es noch einmal zusammenzufassen: Die Datenbank ist verschlüsselt, und der Verschlüsselungscode ist nur zugänglich (für das Programm, das die Datenbank liest), wenn das Programm ordnungsgemäß für einen bestimmten Benutzer/Computer registriert ist.

Sie KÖNNEN dies mit Access, MySQL usw. tun. Verschlüsseln Sie einfach die Daten, entweder auf Datenbankebene (ich nehme an, dass sie dies unterstützen, nicht wahr?) oder auf Feldebene, wenn Sie die ultimative Kontrolle wollen und es in Ordnung ist, eine benutzerdefinierte Front-End-App zu verwenden, um das Ding zu lesen.

0voto

Sundar Punkte 1204

Die folgende ist diejenige, nach der ich suche:

Von offizielle Seite : CouchDB ist ein Peer-basiertes verteiltes Datenbanksystem, es erlaubt Benutzern und Server auf dieselben Daten zugreifen und diese Daten zugreifen und aktualisieren, während sie nicht und dann bidirektional zu replizieren diese Änderungen später replizieren.

Die CouchDB Dokumentenspeicherung, Ansicht und Sicherheitsmodelle sind so konzipiert, dass sie zusammen, um eine echte bidirektionale Replikation effizient und zuverlässig zu machen. Sowohl Dokumente als auch Views können replizieren, so dass komplette Datenbank Anwendungen (einschließlich Anwendungs Design, Logik und Daten) zu replizieren auf Laptops zur Offline-Nutzung repliziert werden, oder auf Server in entfernten Büros repliziert Büros, wo langsame oder unzuverlässige Verbindungen die gemeinsame Nutzung von Daten schwierig machen.

Irgendeine Idee, wie die CouchDB-Daten mit Hilfe von Benutzerkonten geschützt werden können? z.B. benötigt Mysql einen Benutzer-Login, um die Daten zu nutzen. Ich bin nur auf der Suche nach einer einfachen Authentifizierung, nicht nach etwas idiotensicherem. Ich möchte nur nicht, dass die Daten zur Bearbeitung zugänglich sind. Das Dateisystem zu verschlüsseln, scheint mir übertrieben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X