.NET

Einführung

OmniDB ist eine quelloffene, browserbasierte Anwendung für den Zugriff auf und die Verwaltung von vielen verschiedenen Datenbankverwaltungssystemen, z. B. PostgreSQL, Oracle und MySQL. OmniDB kann sowohl als Desktop-App als auch über den Browser laufen und vereint dabei die für unterschiedliche Zugriffswege nötige Flexibilität mit einem Design, das Sicherheit an erste Stelle setzt. OmniDB wird aktiv weiterentwickelt, automatisch mit einer Vielzahl von Datenbanken und Browsern getestet und verfügt über eine vollständige Dokumentation.

Seit den frühen Entwicklungsphasen wurde OmniDB als browserbasierte Anwendung konzipiert. Folglich läuft sie in jedem Browser, auf jedem Betriebssystem. Sie kann von mehreren Rechnern und mehreren Benutzern gleichzeitig genutzt werden, jeder mit seiner eigenen Gruppe von Verbindungen. Sie kann außerdem auf jedem Betriebssystem gehostet werden, ohne dass Abhängigkeiten installiert werden müssen. Weitere Details zur Installation folgen in den nächsten Kapiteln.

Das Hauptziel von OmniDB ist es, einen einheitlichen Arbeitsbereich mit allen Funktionen anzubieten, die für die Arbeit mit verschiedenen DBMS benötigt werden. DBMS-spezifische Werkzeuge sind nicht erforderlich: In OmniDB erfolgt der Kontextwechsel zwischen verschiedenen DBMS über einen einfachen Verbindungswechsel, ohne die Seite zu verlassen. Für den Endbenutzer fühlt es sich so an, als gäbe es keinen Unterschied zwischen der Arbeit mit verschiedenen DBMS — es fühlt sich einfach wie unterschiedliche Verbindungen an.

Trotzdem wurde OmniDB mit Blick auf Einfachheit entwickelt und als schnelle, schlanke browserbasierte Anwendung konzipiert. Lang laufende Vorgänge — Abfragen, Prozeduren und Monitoring — werden im Hintergrund ausgeführt und dem Browser gestreamt, sobald sie abgeschlossen sind, sodass der Benutzer gleichzeitig an mehreren Datenbanken und mehreren Hosts weiterarbeiten kann, ohne dabei durch einen einzelnen Vorgang blockiert zu werden.

OmniDB ist außerdem sicher. Alle OmniDB-Benutzerdaten werden verschlüsselt gespeichert, und es wird überhaupt kein Datenbankpasswort gespeichert. Wenn sich der Benutzer zum ersten Mal mit einer Datenbank verbindet, fragt OmniDB nach dem Passwort. Dieses Passwort wird verschlüsselt und für eine bestimmte Zeit im Arbeitsspeicher abgelegt. Läuft diese Zeit ab, fragt OmniDB das Passwort erneut ab. Dies gewährleistet maximale Sicherheit für die Datenbank, mit der sich OmniDB verbindet.

Geschichte

Die Erschaffer von OmniDB, Rafael Thofehrn Castro und William Ivanski, arbeiteten in einem Unternehmen, in dem sie täglich mit mehreren verschiedenen Kundendatenbanken zu tun hatten. Diese Datenbanken stammten aus unterschiedlichen DBMS-Technologien, weshalb sie ständig zwischen Datenbankverwaltungswerkzeugen wechseln mussten (typischerweise eines pro DBMS). Da sie von den bestehenden einheitlichen Datenbankverwaltungswerkzeugen (die verschiedene DBMS verwalten konnten) nicht überzeugt waren, entstand daraus die Grundidee von OmniDB.

Die erste Version von OmniDB wurde als Abschlussprojekt im Informatikstudium an der Bundesuniversität von Paraná in Brasilien vorgestellt. Ziel war es, eine gemeinsame Linie zwischen populären DBMS zu ziehen und deren Metadaten eingehend zu untersuchen. Das Ergebnis war ein in ASP. NET/C# geschriebenes Werkzeug, das in der Lage war, sich generisch mit mehreren DBMS zu verbinden und deren wichtigste Strukturen (Tabellen, Schlüssel, Indizes und Constraints) zu erkennen:

Die erste Version von OmniDB ermöglichte außerdem die Konvertierung zwischen allen vom Werkzeug unterstützten DBMS. Diese Funktion wurde benutzerfreundlich gestaltet und erforderte nur wenige Schritte: Der Benutzer muss eine Quellverbindung auswählen, die zu konvertierenden Strukturen (einfach Tabellen und alle ihre Strukturen, samt ihrer Daten) sowie die Zielverbindung.

In den Jahren 2025–2026 wurde das Projekt mit größeren Releases (3.1.x) wiederbelebt, mit Fokus auf die Modernisierung der Codebasis, die Verbesserung der Sicherheit und die vollständige Unterstützung moderner Betriebssysteme wie macOS Silicon, zusammen mit einer vollständigen Überarbeitung der Dokumentation. Diese Wiederbelebung gipfelte in einer kompletten Neufassung des Backends von Python/Django nach Go (3.6.x), wodurch die Python-Laufzeitumgebung vollständig entfernt wurde und stattdessen für jede Plattform eine einzige native Binärdatei ausgeliefert wird. Die vollständige Versionshistorie und alle Änderungen im Verlauf finden Sie unter Legacy-Funktionen & Historie.