Connection Service File und pgpass

Posted on Mi 11 Jänner 2017 in Blog

Wer mit verteilten Versionsverwaltungstools wie git arbeitet, kennt sicherlich das Problem mit dem Umgang von Konfigurationsdateien (z.B. für die Verbindungsdaten für die Datenbank).

Postgres bietet hier die Möglichkeit eines „Connection Service Files“. In dieser Datei (~/.pg_service.conf) wird mittels „INI File“-Format ein Name für die Verbindung und die entsprechenden Parameter angegeben.

[testdb]
host=host1.example.com
port=5432
user=user1
dbname=testdb

In Connection-String der jeweiligen Applikation braucht man dann nur „service=testdb“ angeben. So kann dann der Code der Applikation ohne Probleme über ein Versionsverwaltungstool verwaltet werden.

Ein Verbindungsaufbau am Beispiel von Python mittels psycopg2:

conn = psycopg2.connect("service=testdb")

Passwörter kann man zwar auch in dem „Connection Service File“ speichern, aber dafür bietet sich besser das „Password File“ (~/.pgpass) an. In dieser Datei werden die Zugänge im folgenden Format gespeichert

hostname:port:database:username:password