Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
postgres [2018/02/07 18:48] root [pg_dump und pg_restore] |
postgres [2023/12/27 12:34] (aktuell) root [Troubleshooting] |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
* DBMS (Datenbank Management System) | * DBMS (Datenbank Management System) | ||
- | + | ====== HowTo ======= | |
- | ====== Root-Passwort (bzw. postgres) setzen | + | ===== Root-Passwort (bzw. postgres) setzen ===== |
* Die Anweisungen beziehen sich auf ein Debian-System, | * Die Anweisungen beziehen sich auf ein Debian-System, | ||
Zeile 33: | Zeile 33: | ||
* Die Liste durchgehen und schauen ob noch irgendwo peer steht und ggf. auch durch md5 ersetzen | * Die Liste durchgehen und schauen ob noch irgendwo peer steht und ggf. auch durch md5 ersetzen | ||
- | ====== Login ====== | + | ===== Login ===== |
* psql -U < | * psql -U < | ||
* postgres entspricht per Default dem Benutzer " | * postgres entspricht per Default dem Benutzer " | ||
+ | |||
+ | |||
+ | ===== Benutzer anlegen ===== | ||
+ | |||
+ | * in aktuellen Versionen 9.x aufwärts gibt es keinen Unterschied zwischen Benuztern und Gruppen | ||
+ | * beides wird als Rollen bezeichnet | ||
+ | * Gruppen sind Rollen die Benutzern zugewiesen wurden | ||
+ | * Benuzter sind Rollen | ||
+ | |||
+ | * Benutzer können über createuser auf der normalen Shell angelegt werden (ist ein Program) | ||
+ | * oder über die Datenbankshell | ||
+ | |||
+ | ==== Per Datenbankshell ==== | ||
+ | |||
+ | * Syntax: create role < | ||
+ | * Beispiel: create role test with nosuperuser nocreatedb nocreaterole password ' | ||
+ | |||
+ | |||
+ | Je nach Konfiguration werden dem Benutzer bestimmte Optionen automatisch eingeräumt und müssen ihm ggf. explizit beim Anlegen genommen werden -> das sind die Optionen die " | ||
====== Unteschiede in den Kommandos zu MySQL/ | ====== Unteschiede in den Kommandos zu MySQL/ | ||
Zeile 81: | Zeile 100: | ||
Syntax: pg_restore -d < | Syntax: pg_restore -d < | ||
+ | |||
+ | |||
+ | ====== pg_dumpall ====== | ||
+ | |||
+ | * Dumped alle Datenbanken des Clusters (des Datebankservers), | ||
+ | * **Hinweis: | ||
+ | * dort sind aber u.a. die Algorithmen für die Passwörter definiert | ||
+ | |||
+ | |||
+ | <sxh bash> | ||
+ | pg_dumpall > somefile.sql | ||
+ | </ | ||
+ | |||
+ | Restore: | ||
+ | <sxh bash> | ||
+ | psql -f somefile.sql postgres | ||
+ | </ | ||
+ | |||
+ | Welche Datenbank (welche da angegeben wird) (in diesem Fall postgres) angegeben wird (hier postgres) ist an sich egal, der Befehl erwartet nur eine Angabe. | ||
+ | |||
+ | |||
====== Generelle Hinweise ====== | ====== Generelle Hinweise ====== | ||
* Kommt auf einen Befehl keine Bestätigung ist etwas schief gelaufen | * Kommt auf einen Befehl keine Bestätigung ist etwas schief gelaufen | ||
* (alle?) Befehle geben eine Rückgabe | * (alle?) Befehle geben eine Rückgabe | ||
+ | |||
+ | |||
+ | ====== Troubleshooting ====== | ||
+ | |||
+ | |||
+ | ^Problem ^Lösung ^ | ||
+ | |Nach pg_dumpall und wiederherstellung auf einem anderen System funktioniert der Login nicht|Die Authentifizierungsmechanisnmen (und die verwendeten Verschlüsselungen für die Passwörter) sind in pg_hba.conf hinterlegt. \\ Wird diese nicht mitkopiert (was pg_dumpall nicht tut). \\ Datei muss mitkopiert werden oder die Authentifizierungsemchanismen im Nachgang angepasst werden. **Zu beachten:** Ein Mechanismus kann nur eine Verschlüsselungsmethode haben und wenn die Verschlüsselungsmethode mit der übereinstimmt mit der die Passwörter in der Datenbank verschlüsselt sind schlägt das anmelden fehl -> man kann also die Passwörter in der " | ||
+ | |Gleiche Authentifizierungsmethode mit verschiedenen Verschlüsselungsalgorithmen in pg_hba.conf|< | ||
+ | < | ||
+ | host all | ||
+ | host all | ||
+ | </ | ||
+ | In obigem Beispiel soll Host-Authentifizierung mit scram-sha-256 verschlüsselten und md5-Passwörtern erlaubt werden. \\ | ||
+ | Das geht nicht, pro Authentifizierungsmethode kann es nur einen Passwortverschlüsselungsalgorithmus geben, ggf. müssen also die Passwörter in der Datenbank erneut mit einer der beiden Methoden verschlüsselt werden</ | ||
+ |