Unser Newsletter rund um technische Themen,
das Unternehmen und eine Karriere bei uns.

3 Minuten Lesezeit (553 Worte)

PostgreSQL: Einfachere Verbindungen

In PostgreSQL bietet das Service Configuration File .pg_service.conf eine einfache Möglichkeit, Verbindungsparameter zu verwalten und wiederverwendbare Konfigurationen für verschiedene PostgreSQL-Datenbankverbindungen zu erstellen und somit die Definition von Verbindungsinformationen zu vereinfachen. In diesem Artikel werden wir die Funktionalitäten und Anwendungsmöglichkeiten von .pg_service.conf erkunden. 

Die Konfigurationsdatei ~/.pg_service.conf

Die Datei .pg_service.conf ermöglicht es, Verbindungsinformationen an einem zentralen Ort zu verwalten, anstatt sie jedes Mal beim Verbindungsaufbau neu anzugeben. Dies erleichtert die Administration von Verbindungsparametern und macht die Konfiguration von Anwendungen einfacher. Voraussetzung: Der Client nutzt die PostgreSQL-Client-Library libpq; die Standard-PostgreSQL-Client-Software psql ist ein Beispiel dafür.

Der Standard-Pfad und Name für diese Datei ist ~/.pg_service.conf. Alternativ kann ein anderer Pfad über die Umgebungsvariable $PGSERVICEFILE spezifiziert werden.

Beispiel:

dbserver:/home/postgres [PG16]$ cat .pg_service.conf 
[airlines] 
host=127.0.0.1 
port=5432 
dbname=airlines 
 
[scottdb] 
host=127.0.0.1 
port=5432 
dbname=scott_db 
user=scott 
 
[PG16] 
host=192.168.56.107 
port=5432 
 
[scottdbpw] 
host=127.0.0.1 
port=5432 
dbname=scott_db 
user=scott 
password=tiger  

Anmeldung an eine Datenbank mit Hilfe von „Services"

Beispiel 1:

dbserver:/home/postgres [PG16]$ psql service=airlines -U postgres 
Password for user postgres: 
127.0.0.1 postgres@airlines=# \conninfo 
You are connected to database "airlines" as user "postgres" on host "127.0.0.1" at port "5432".  

Beispiel 2:

dbserver:/home/postgres [PG16]$ psql service=scottdb 
Password for user scott: 
Welcome to PostgreSQL 
127.0.0.1 scott@scott_db=> \conninfo 
You are connected to database "scott_db" as user "scott" on host "127.0.0.1" at port "5432".  

Beispiel 3:

Wenn man die Service-Definition „PG16“, die in unserem Beispiel nur den Host und den Port umfasst, um die weiteren notwendigen Informationen ergänzen will, dann müssen die Parameter insgesamt in einfache Anführungszeichen gefasst werden. 

dbserver:/home/postgres [PG16]$ psql 'service=PG16 dbname=scott_db user=scott' 
Password for user scott: 
192.168.56.107 scott@scott_db=> \conninfo 
You are connected to database "scott_db" as user "scott" on host "192.168.56.107" at port "5432".  

Beispiel 4:

Über die Umgebungsvariable PGSERVICE kann man gezielt eine Service-Konfiguration auswählen, sodass sich eine Anwendung ohne weitere Angaben direkt zu der gewählten Datenbank verbindet: 

dbserver:/home/postgres [PG16]$ export PGSERVICE=scottdbpw 
dbserver:/home/postgres [PG16]$ psql 
Welcome to PostgreSQL 
127.0.0.1 scott@scott_db=> \conninfo 
You are connected to database "scott_db" as user "scott" on host "127.0.0.1" at port "5432".  

Verbergen des Passworts

In unserem Beispiel wird beim Service „scottdbpw“ das Passwort des Benutzers „scott“ in der pg_service.conf abgelegt, um so eine passwortlose Anmeldung an den Cluster zu ermöglichen. Mittels „chmod 600 .pg_service.conf“ kann man den Zugriff auf den jeweiligen Eigentümer beschränken. Alternativ kann die normale Password-Datei .pgpass verwendet werden. Aus der .pg_service.conf kann man dann mit dem Parameter „passfile“ auf die Password-Datei verweisen: 

[beispieldb] 
host=localhost 
port=5432 
dbname=beispieldb 
user=beispieluser 
passfile=~/.pgpass  

Die Vorteile von .pg_service.conf:

1. Wiederverwendbarkeit: Durch die Verwendung von .pg_service.conf können Sie Verbindungskonfigurationen für verschiedene Projekte wiederverwenden, ohne die Parameter jedes Mal neu eingeben zu müssen.

2. Portabilität: Die zentrale Verwaltung von Verbindungsparametern erleichtert die Portabilität von Anwendungen zwischen verschiedenen Umgebungen.

3. Sicherheit: Verbindungsparameter können geschützt in der .pg_service.conf-Datei oder der .pgpass-Datei gespeichert werden, um sensible Informationen zu schützen. 

Fazit

Das .pg_service.conf-Dateiformat bietet eine effiziente Möglichkeit, PostgreSQL-Verbindungsparameter zu organisieren und zu verwalten. Durch die Nutzung dieses Features wird die Konfiguration von Anwendungen vereinfacht und die Wiederverwendbarkeit von Verbindungsparametern verbessert, was zu einer effizienteren und sichereren PostgreSQL-Nutzung führt.

Weitere Informationen zu PostgreSQL erfahren Sie in unserem Seminar „PostgreSQL-Administration“.

Seminarempfehlung

Principal Consultant bei ORDIX

 

Kommentare

Derzeit gibt es keine Kommentare. Schreibe den ersten Kommentar!
Sonntag, 22. Dezember 2024

Sicherheitscode (Captcha)

×
Informiert bleiben!

Bei Updates im Blog, informieren wir per E-Mail.