Skript mit wechselnden ROLEs unter PostgreSQL ausführen
Dann und wann wird eine Skript benötigt, welches abschnittsweise unter verschiendenen ROLEs (Datenbank-Usern) ausgeführt wird. Dazu kann man die Datenbankverbindung in psql mit Username und Datenbank á la
\c <database> <role>
neu herstellen. Es wäre unsicher und damit sehr unschön, wenn dazu alle benötigten Passworte im Skript auftauchen würden. Genau hierfür gibt es die Möglichkeit, Passworte in einer Datei ~/.pgpass abzulegen. Das ist einigermaßen sicher, weil der Zugriff auf
chmod 600 ~/.pgpass
eingestellt werden muss. So kann nur der berechtigte Anwender die Datei lesen. Es müsste der Account geknackt werden, um an die Passworte zu kommen.
Das Format der Einträge in .pgpass ist
<host>:<port>:<database>:<username>:<password>
Um die Sache hier weiter abzusichern, kann man einen Superuser anlegen, der dann für die Ausführung des Skripts verwendet und anschliend wieder manuell gelöscht wird. Damit ist die Sache dann recht sicher. Zudem kann natürlich die .pgpass Datei nach Auführung des Skripts gelöscht werden.
Referenzen
