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:44] root [Unteschiede in den Kommandos zu MySQL/Basisbefehle] |
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 73: | Zeile 92: | ||
| |c|Custom - komprimiertes Binärformat. \\ \\ Kann nicht editiert werden \\ Selektives wiederherstellen möglich \\ Wiederherstellen über pg_restore möglich| | |c|Custom - komprimiertes Binärformat. \\ \\ Kann nicht editiert werden \\ Selektives wiederherstellen möglich \\ Wiederherstellen über pg_restore möglich| | ||
| </ | </ | ||
| + | |||
| + | |||
| + | * pg_restore stellt eine Datenbank aus einer Datei im " | ||
| + | * als " | ||
| + | |||
| + | **Achtung: | ||
| + | |||
| + | 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 ====== | ||
| Zeile 78: | Zeile 125: | ||
| * 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</ | ||
| + | |||