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.
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 Ihrer 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 beachten Sie, 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, wenden Sie sich 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 Zugriff auf die Datenbank nmd_database2
.
Um dieses Recht zu widerrufen, verwenden Sie 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.