.NET

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).

The Connections section with the connection form

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:

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

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:

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.