Am Mittwoch, 26. April 2006 00:38 schrieb Andreas Pakulat:
> On 25.04.06 22:42:15, Norman Bundey wrote:
[...]
> > wenn ich als user (der linux user ist der gleiche wie der den ich
> > für die datenbank angelegt habe), "psql -h localhost template1"
> > eingebe schmeißt er mir diesen fehler:
> >
> > psql: FATAL:  »IDENT«-Authentifizierung für Benutzer »meinbenuzter«
> > fehlgeschlagen
>
> Das funktioniert nur wenn "meinbenutzer"==dein-unix-benutzername ist.

oder man ein Mapping in pg_ident.conf festgelegt hat.
z.B. in /etc/postgresql/pg_ident.conf
# MAPNAME     IDENT-USERNAME    PG-USERNAME
myident         www-data        <my-pg-user>

und in /etc/postgresql/pg_hba.conf
local   <db|all>  <db-user|all>  ident myident

läßt z.B den Apachen auf die Datenbank <db> als User <my-pg-user> über 
Unix-Sockets verbinden, ohne ein Passwort. Oder auch via Shell als User 
www-data mittels:
psql -U <my-pg-user> <db>

Finde ich eine angenehme Sache und mache ich recht häufig für 
verschiedene Nutzer. Bei mir darf meist root z.B. als postgres arbeiten 
um neue Nutzer/DBs anzulegen, spart halt das su -... und für Scripte 
auch etwas einfacher. www-data ist für Webanwendungen auch oft 
praktisch.
Das Ident setzt aber immer ein -U <db-user> vorraus, d.h. es ist kein 
Mapping möglich von einem unix-user zu einem db-user ohne das der 
Unix-User ein -U <db-user> als Parameter angibt oder auch als pg-user 
existiert.

-- 
Markus Schulz

"In diesen heil'gen Mauern soll kein Windows lauern..."
[Jochen Lippert in d.a.s.r]

Antwort per Email an