Benutzer und Verbindungen erstellen
Als Benutzer admin anmelden
OmniDB wird nur mit dem Benutzer admin ausgeliefert. Wenn Sie die Server-Version
verwenden, sollten Sie sich zunächst als admin anmelden — mit dem einmaligen Zufallspasswort,
das omnidb-server beim Anlegen einer neuen App-Datenbank in seine Log-Ausgabe geschrieben hat
(die Zeile mit initial login: admin / …) — und es anschließend unter Einstellungen
ändern. Ein verlorenes Passwort lässt sich mit omnidb-server --set-password admin zurücksetzen. Nach 10 fehlgeschlagenen Anmeldeversuchen für denselben Benutzernamen oder dieselbe Client-IP-Adresse
wird die Anmeldung für 15 Minuten gesperrt. Die Desktop-App kennt überhaupt keine Anmeldung — sie läuft als einziger lokaler
Benutzer, sodass alles zur Benutzerverwaltung weiter unten dort schlicht nicht vorhanden ist.
Orientierung in der Oberfläche
Der gesamte Arbeitsbereich wird über die senkrechte Symbolleiste am linken Fensterrand erreicht: Willkommen, Verbindungen (das Stecker-Symbol), Datenbank, Überwachung, Benachrichtigungen, Berechtigungen, Verbundene Benutzer und Snippets oben sowie Erste Schritte, Konto (nur in der Server-Version) und Einstellungen (das Zahnrad) unten. Wenn Sie mit der Maus über ein Symbol fahren, wird sein Name angezeigt. Wie die Bereiche zusammenspielen, erklärt Datenbanken verwalten; die Sprache der Oberfläche und weitere Präferenzen beschreibt Einstellungen und Sprachen.
Einen weiteren Benutzer erstellen
Öffnen Sie Settings (Einstellungen) unten in der Leiste, wählen Sie die Kategorie Account (Konto) und klicken Sie auf Manage Users (Benutzer verwalten). Diese Schaltfläche sieht nur ein Superuser — in den Einstellungen eines normalen Benutzers fehlt der Bereich Account vollständig.
Das Fenster User management (Benutzerverwaltung) listet die vorhandenen Benutzer auf. Ein Klick auf Add new user (Neuen Benutzer hinzufügen — das Symbol mit Person und Plus) fügt eine neue, leere Benutzerzeile ein, die bis zum Ausfüllen als (pending info) angezeigt wird. Tragen Sie Benutzername und Neues Passwort ein, schalten Sie bei Bedarf Superuser? ein und klicken Sie auf Save (Speichern). Sie können beliebig viele Benutzer anlegen, vorhandene bearbeiten und einen Benutzer über das rote Kreuz in der Aktionsspalte löschen.
Zum Abmelden klicken Sie auf das Symbol Account (Konto — die Person unten in der Leiste) und dann auf Sign out (Abmelden).
Das Löschen eines Benutzers oder das Entziehen des Superuser-Status wirkt sofort, auch für bereits geöffnete Sitzungen dieses Benutzers.
Der Bereich Connections
Klicken Sie auf das Stecker-Symbol in der Leiste. Verbindungen sind ein vollwertiger Bereich des Arbeitsbereichs und kein Popup: eine geteilte Ansicht mit der Liste der gespeicherten Verbindungen links in der Seitenleiste und dem Formular samt Schaltflächen der ausgewählten Verbindung rechts.
Jede Zeile der Liste zeigt das Symbol der Datenbank-Engine, den Namen der Verbindung und darunter
benutzer@server:port, worauf sie zeigt (oder die Verbindungszeichenfolge bzw. das
SSH-Ziel bei einer Terminal-Verbindung). Ein kleiner farbiger Punkt kennzeichnet die Umgebung der
Verbindung, ein Schlüsselsymbol eine Verbindung über einen SSH-Tunnel.
Verbindungen erstellen
OmniDB unterstützt PostgreSQL, MySQL, MariaDB, Oracle, MS SQL Server, Firebird und SQLite sowie zusätzlich den Verbindungstyp Terminal, der statt einer Datenbank eine SSH-Shell öffnet. Die Liste Verbindungstyp zeigt PostgreSQL zuerst, dann die übrigen alphabetisch und Terminal zuletzt.
Bei SQLite zeigt die Verbindung auf eine Datenbankdatei (auf dem Rechner, auf dem
omnidb-server läuft); existiert die Datei noch nicht, meldet Verbindung testen dies,
und die Datei wird bei der ersten Verwendung der Verbindung angelegt. Auf einem Mehrbenutzer-Server sind
SQLite-Verbindungen Superusern vorbehalten, und einige Parameter von PostgreSQL-Verbindungszeichenfolgen,
die Dateien auf dem Server lesen, werden abgelehnt — siehe Sicherheit und
Mehrbenutzer-Server.
Mit der Schaltfläche + unter der Liste legen Sie eine Verbindung an. Tragen Sie den Namen
in die Kopfzeile des Formulars rechts ein, wählen Sie den Connection Type (Verbindungstyp)
und füllen Sie die Karte Host Connection Info (Serverdaten) aus: Server,
Port, Database (Datenbank), User (Benutzer) und optional
User Password (Benutzerpasswort). Statt der Einzelfelder können Sie auch nur eine
Connection string (Verbindungszeichenfolge, zum Beispiel
postgresql://postgres@localhost:5432/postgres) angeben und den Rest leer lassen.
Klicken Sie zum Schluss oben rechts im Formular auf Save (Speichern).

Test Connection (Verbindung testen) daneben probiert die Verbindung aus, ohne sie zu öffnen, und meldet entweder Connection successful. oder genau den Fehler, den die Datenbank zurückgegeben hat. Die Schaltfläche − unter der Liste löscht die ausgewählte Verbindung; bei einer Verbindung, die gerade in einem Tab geöffnet ist, bleibt sie deaktiviert.
Passwörter
Das Feld User Password (Benutzerpasswort) ist optional, und die beiden Möglichkeiten verhalten sich unterschiedlich:
- Ausgefüllt: Das Passwort wird in OmniDBs eigener Konfigurationsdatenbank gespeichert und bei jedem Öffnen der Verbindung automatisch verwendet. Vor dem Speichern wird es (AES-256-GCM) verschlüsselt, mit einem Schlüssel, der im geheimen Speicher des Betriebssystems liegt (Keychain unter macOS, Credential Manager unter Windows, Secret Service unter Linux) statt in der Datei selbst — allein die Datenbankdatei reicht damit nicht mehr aus, um die darin enthaltenen Passwörter zu lesen. Ist kein solcher geheimer Speicher verfügbar, weicht OmniDB auf eine Schlüsseldatei neben der Datenbank aus.
- Leer gelassen: Es wird nichts gespeichert, und OmniDB fragt beim Öffnen der Verbindung nach dem Passwort. Das Eingetippte bleibt nur im Arbeitsspeicher des Servers, für Ihre Sitzung und diese Verbindung, 30 Minuten lang — danach fragt OmniDB erneut.
Bei PostgreSQL sucht OmniDB das Passwort beim Verbindungsaufbau zusätzlich in Ihrer Datei
.pgpass, und zwar nach demselben Eintrag, den auch libpq nehmen würde — eine Verbindung
ohne gespeichertes Passwort kann sich so ohne Nachfrage öffnen. In der sandboxed macOS-App bietet
der Passwortdialog Grant access to .pgpass… (Zugriff auf .pgpass gewähren): Sie wählen die
Datei einmal aus, danach holt sich jede weitere Verbindung ihr Passwort selbst daraus.
Lehnt die Datenbank den Versuch ab, bleibt der Dialog mit dem Fehler stehen, den OmniDB erhalten hat (fe_sendauth: no password supplied, ein Authentifizierungsfehler, ein nicht erreichbarer Server und so weiter), sodass Sie das Passwort korrigieren und es erneut versuchen können.
Verbindungen aus .pgpass importieren
Das Datei-Import-Symbol neben den Schaltflächen + und − liest eine
.pgpass-Datei und legt für jede konkrete Zeile darin eine PostgreSQL-Verbindung an —
als bloße Verbindungszeichenfolge postgresql://benutzer@host:port/db ohne gespeichertes
Passwort. Der Sinn ist, sich weiterhin über diese Datei zu authentifizieren, statt Passwörter nach
OmniDB zu kopieren. Zeilen mit Platzhaltern (*) werden übersprungen, ebenso Zeilen, die
bereits zu einer vorhandenen Verbindung passen.
Die Liste organisieren
- Reihenfolge: Ziehen Sie eine Zeile an eine beliebige Stelle der Liste. Die Anordnung wird pro Benutzer gespeichert und übersteht sowohl das Neuladen als auch einen Neustart. Später angelegte Verbindungen kommen unten dazu.
- Gruppen: Die Auswahl oben in der Seitenleiste filtert die Liste auf eine Gruppe. + Group legt eine Gruppe an, und die Schaltfläche … daneben bietet Rename (Umbenennen), Manage Connections (Verbindungen verwalten — macht aus den Zeilen Kontrollkästchen, mit denen Sie die Zugehörigkeit festlegen und anschließend Save changes klicken) und Delete (Löschen).
- Öffentliche Verbindungen: Der Schalter Public connection? (Öffentliche Verbindung?) im Formular macht eine Verbindung für alle anderen OmniDB-Benutzer nutzbar. Nur ihr Eigentümer kann sie bearbeiten; andere Benutzer sehen ihr gespeichertes Passwort nie (ein Passwort in ihrer Verbindungszeichenfolge wird für sie maskiert), und ihr Verbindung testen prüft immer den gespeicherten Server. Der Schalter Public (n) unten in der Seitenleiste blendet die öffentlichen Verbindungen anderer Benutzer in Ihrer eigenen Liste ein oder aus.
- Umgebung: Wird eine Verbindung als Production, UAT, Development oder Archive markiert, färbt das ihren Punkt in der Liste und den Rand ihres geöffneten Tabs — vor allem als Sicherheitshinweis, damit der Griff zum falschen Tab sofort auffällt.
Eine Verbindung öffnen
Klicken Sie im Formular auf Connect (Verbinden) oder doppelklicken Sie einfach auf eine Zeile der Liste — OmniDB öffnet sie in einem neuen Connection Outer Tab, wie wir im nächsten Kapitel sehen werden. Ein Rechtsklick auf eine Zeile öffnet ein Kontextmenü (Connect/Edit/Delete — Delete fehlt bei einer bereits geöffneten Verbindung), ein Rechtsklick auf leeren Raum in der Liste bietet New Connection/Refresh.
SSH-Tunnel verwenden
OmniDB ermöglicht es, sich über SSH-Tunnel mit jeder entfernten Datenbank zu verbinden. Setzen Sie im Formular der jeweiligen Verbindung den Haken bei Use SSH tunnel (SSH-Tunnel verwenden) — damit werden die Felder darunter aktiv:
- SSH Server (SSH-Server): Der Server, mit dem Sie sich per SSH verbinden. Sein Hostschlüssel muss
bereits in der Datei
~/.ssh/known_hostsdes Betriebssystembenutzers stehen, unter dem OmniDB läuft, sonst wird der Tunnel abgelehnt — siehe Sicherheit und Mehrbenutzer-Server; - SSH Port (SSH-Port): Der Port des SSH-Servers (Standard ist 22, es kann aber jeder beliebige Port sein);
- SSH User (SSH-Benutzer): Der Betriebssystem-Benutzername, mit dem Sie sich am SSH-Server anmelden;
- Password/Passphrase (Passwort/Passphrase): Das Passwort des Betriebssystem-Benutzers (oder die Passphrase für den Schlüssel unten). Lassen Sie es leer, fragt OmniDB bei jedem Öffnen des Tunnels danach, ohne es zu speichern. Wenn Sie das Feld SSH Key Text File ausfüllen, ist ein Passwort optional;
- SSH Key Text File (SSH-Schlüssel-Textdatei): Der Inhalt des lokalen privaten SSH-Schlüssels, mit dem Sie sich am SSH-Server anmelden können. OmniDB liest die ausgewählte Datei und speichert ihren Text, nicht die Datei selbst. Wenn Sie dieses Feld ausfüllen, können Sie zusätzlich Password/Passphrase angeben, das dann aber die Passphrase des privaten SSH-Schlüssels ist.
Alles, was Sie hier speichern — SSH-Passwort, Passphrase und Schlüsseltext — landet in derselben lokalen OmniDB-Konfigurationsdatenbank wie die Datenbankpasswörter, und wird genauso verschlüsselt.
Bei der Verwendung von SSH-Tunneln müssen Sie auch alle Datenbankfelder entsprechend ausfüllen. Sie beziehen sich dann aber nicht auf den OmniDB-Server, sondern auf den SSH-Server. Dafür gibt es die beiden folgenden Szenarien.
Liegt die Datenbank auf demselben Server, mit dem Sie sich per SSH verbinden, ergibt sich diese Situation:

In diesem Szenario ist der Datenbank-Server 127.0.0.1, da die Datenbank auf
demselben Rechner liegt wie der SSH Server.
Die Datenbank kann aber auch außerhalb des SSH-Servers liegen, so wie hier:

Hier muss der Datenbank-Server 192.168.0.10 lauten, denn das ist die
Adresse, unter der der SSH-Server den Datenbankserver erreicht.