Pg_dump Verständnisproblem

worker@hdlx0420:~> pg_dump -d xydat -U 'xyadmin' --role=xyadmin -w > test.dmp

pg_dump: Fehler: Verbindung zur Datenbank »xydat« fehlgeschlagen: FATAL: Peer-Authentifizierung für Benutzer »xyadmin« fehlgeschlagen

Angemeldet ist worker, mit diesem möchte ich einen Dump der DB xydat deren owner und DB-Chef xyadmin ist erstellen.
Geht das so überhaupt?
An welchen Schrauben muss ich drehen damit es geht?
Alle spielt sich auf localhost ab.
Postgresql Vers. 12
die Datei .pgpass gibt es
localhost:*:xydat:xyadmin:stop

setz mal hoch ein -h localhost dazu, um eine Verbindung via Netzwerk zu erreichen, jetzt geht es via Socket, daher auch Peer-Auth.

worker@hdlx0420:~/Dokumente/ewu/skripte> pg_dump -d xydat -h localhost -U xyadmin --role=xyadmin -w > test.dmp'

pg_dump: Fehler: Verbindung zur Datenbank »xydat« fehlgeschlagen: FATAL: Ident-Authentifizierung für Benutzer »xyadmin« fehlgeschlagen.
Es hat sich was verändert. Liegt das Problem nun in der pg_hba.conf?

setz mal noch den Port dazu, oder ändere die Auth-Methode bei local auf md5.

worker@hdlx0420:~> pg_dump -d xydat -h localhost -U xyadmin -p 5432 -W --role=xyadmin > test.dmp
Passwort:
pg_dump: Fehler: Verbindung zur Datenbank »xydat« fehlgeschlagen: FATAL: Ident-Authentifizierung für Benutzer »xyadmin« fehlgeschlagen

Die pg_hba.conf an der Stelle:
# TYPE DATABASE USER ADDRESS METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
local   all             all                                     peer

Ich habe dazu nun keine Idee mehr. Dieser Effekt ist auch nur auf meinen Linuxsytemen zu beobachten. Im Produktivsystem mit Win10 Stationen funktioniert pg_dump mit dem entfernten LFS-Server und PG 11 ohne Probleme.
D. h. muss ich eher im Bereich Linux suchen? Ich hab keinen Plan wie eng Linux und Postgres an der Stelle verzahnt sind. Bin ich als User xyadmin angemeldet funktioniert der
PG_dump -d xydat > sich.dmp <- so vorzüglich.

Mit -h localhost versuchst Du eine TCP Verbindung zu erstellen - das ist was anderes als “local”. In der pg_hba.conf werden TCP Verbindungen über “host” in der ersten Spalte konfiguriert. Wenn Du also TCP Verbindung von allen Rechner zulassen möchtest, dann musst Du z.B. das hier hinzufügen:

host   all             all                                     md5

Hallo,
ich weiß nicht genau wieso aber so es funktioniert nun
worker@hdlx0420:~> pg_dump -d xydat -U xyadmin

.pgpass
localhost:*:xydat:xyadmin:go

pg_hba.conf
# "local" is for Unix domain socket connections only
local all xyadmin md5
local all all trust
local all all peer
So ist das nun konfiguriert.
nur der xyadmin braucht ein kennwort, kommt aus .pgpass, der rest kann wie bisher ohne Kennwort arbeiten.
!! Gilt alles nur für lokales arbeiten auf einem Rechner !!

DANKE für die Hinweise

Weil Du das -h localhost weggelassen hast. Damit ist es keine TCP Verbindung mehr, sondern eine “local” Verbindung die in Deiner pg_hba.conf zugelassen ist (im Gegensatz zu TCP Verbindungen)