Zum Hauptinhalt springen

nine-manage-databases

Nine bietet ein CLI-Tool für die Verwaltung von Datenbanken an. nine-manage-databases wird über SSH bedient. Aktuell können MySQL / MariaDB- und PostgreSQL-Datenbanken verwaltet werden.

Veraltete PostgreSQL-Passwortverschlüsselung

In den neueren PostgreSQL-Versionen hat sich die standardmässige Passwortverschlüsselungsmethode von md5 zu scram-sha-256 geändert. Beide Methoden werden weiterhin unterstützt, aber alle neuen Passwörter werden nun mit scram-sha-256 verschlüsselt. Um ein hohes Sicherheitslevel zu gewährleisten, sollten Passwörter bei Gelegenheit aktualisiert werden, zum Beispiel bei der Einführung einer neuen Hauptversion deiner Software.

Hilfe​

Der folgende Befehl listet alle verfügbaren Befehle auf:

$ sudo nine-manage-databases -h

Datenbankverwaltung​

Mit nine-manage-databases werden Datenbanken aufgelistet, erstellt und gelöscht.

Auswahl des Datenbanktyps (DBMS)​

Wenn mehrere Datenbanktypen installiert sind, muss das gewünschte DBMS mit der Option --database-type (oder -t) ausgewählt werden.

Verfügbare DBMS:

  • mysql (MySQL / MariaDB)
  • postgresql (PostgreSQL)
$ sudo nine-manage-databases --database-type=postgresql database list

Dieser Befehl listet beispielsweise alle PostgreSQL Datenbanken auf, die mit nine-manage-databases erstellt wurden.

Da in den meisten Fällen lediglich ein DBMS zur Verfügung steht, ist dieser Zusatz meist nicht erforderlich.

Datenbanken auflisten​

Der folgende Befehl listet alle erstellten Datenbanken auf:

$ sudo nine-manage-databases database list

Datenbank erstellen​

$ sudo nine-manage-databases database create --user=nmd_user1 nmd_database1

Dieser Befehl erstellt eine Datenbank mit dem Namen nmd_database1. Das Präfix nmd_ wird verwendet, um die durch Nine von den durch nine-manage-databases erstellten Datenbanken voneinander zu unterscheiden.

Zusätzlich wird im obigen Beispiel automatisch der Benutzer nmd_user1 erstellt, welcher Lese- und Schreibzugriff auf die Datenbank erhält.

Das Kennwort für den Benutzer wird generiert und in der Ausgabe des Befehls angezeigt. Falls gewünscht kann das Passwort mit Angabe der Option -p gesetzt werden.

Falls für einen bestehenden Benutzer eine neue Datenbank angelegt werden soll, kann die Option --database-only hierfür genutzt werden.

Datenbank löschen​

$ sudo nine-manage-databases database drop nmd_database1

Dieser Befehl löscht die Datenbank nmd_database1. Vor der Löschung ist zur Sicherheit noch eine Bestätigung erforderlich. Die Bestätigung kann mit der Option --force übersprungen werden. Dadurch wird die Datenbank ohne Rückfrage sofort gelöscht.

Dieser Befehl löscht auch alle Benutzer dieser Datenbank.

Datenbank-Benutzer​

Benutzer auflisten​

$ sudo nine-manage-databases user list --database=nmd_database1

Dieser Befehl listet alle Benutzer der Datenbank nmd_database1 auf. Ohne Angabe der Datenbank werden alle Benutzer angezeigt.

Benutzer erstellen​

$ sudo nine-manage-databases user create --database=nmd_database1 --read-only -p nmd_user2

Es können beliebig viele Benutzer für eine Datenbank erstellt werden. Der oben stehende Befehl erstellt den Benutzer nmd_user2, zu dem das Passwort interaktiv abgefragt wird.

Wird die Option -p weggelassen, wird automatisch ein Passwort generiert und ausgegeben.

In diesem Beispiel hat der Benutzer nur Lesezugriff (Option --read-only). Ohne diese Option werden Benutzer standardmässig mit Lese- und Schreibzugriff auf die Datenbank erstellt.

Datenbankzugriff für Benutzer gewähren​

⚠️ Bitte beachte, dass die Befehle user grant_rights und user revoke_rights nur für den DBMS Typ 'mysql' verfügbar sind. Um den Datenbankzugriff für Benutzer mit dem DBMS Typ 'postgresql' verwalten zu können, wende dich bitte an , um Zugang zu einem Admin-Benutzer für diesen Zweck zu erhalten.

Einem Benutzer kann auf mehrere Datenbanken der Zugriff gewährt werden.

$ sudo nine-manage-databases user grant_rights nmd_user2 --database=nmd_database2 --read-only

nmd_user2 Benutzer hat nun Lesezugriff auf die Datenbank nmd_database2.

Um dieses Recht zu widerrufen, verwende den Befehl user revoke_rights:

$ sudo nine-manage-databases user revoke_rights nmd_user2 --database=nmd_database2

Passwort ändern​

$ sudo nine-manage-databases user update nmd_user1 update -p

Dieser Befehl ändert das Kennwort des Benutzers nmd_user1. Mit -p wird das Passwort interaktiv abgefragt.

Benutzer löschen​

$ sudo nine-manage-databases user drop nmd_user1

Dieser Befehl löscht den Benutzer nmd_user1.