ich habe einen DB-User folgendermaßen angelegt:
CREATE ROLE user LOGIN
ENCRYPTED PASSWORD passwort
NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE VALID UNTIL ‘2009-01-17 00:00:00’;
Obwohl der Account gemäß “valid until” ausgelaufen ist, kann dieser User sich mit seiem Passwort immer noch anmelden.
Kennt jemand die Ursache dieses Fehlers und wie kann man den Fehler abstellen ?
kretschmer@apache-new:~$ psql test -h localhost -p 5432 -U testuser
Password for user testuser:
Welcome to psql 8.3.3, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
test=> \q
kretschmer@apache-new:~$ psql test
Welcome to psql 8.3.3, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
test=# drop role testuser;
DROP ROLE
test=# CREATE ROLE testuser LOGIN ENCRYPTED PASSWORD 'testpasswort' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE VALID UNTIL '2009-01-17 00:00:00';
CREATE ROLE
test=# \q
kretschmer@apache-new:~$ psql test -h localhost -p 5432 -U testuser
Password for user testuser:
psql: FATAL: password authentication failed for user "testuser"
kretschmer@apache-new:~$
Es ist der richtige Server.
Die Zeit auf dem Server stimmt auch , zeigt heute an.
Ich habe im Schema pg_catalog in der Sicht pg_user nach meinem User geschaut. Er wird noch aufgeführt und in der Spalte “valuntil” steht der Wert “2009-01-17 00:00:00+00”.
Außerdem habe ich die gleichen Befehle auf der Kommandozeile wie akretschmer ausgeführt. Der User “testuser” konnte sich trotz Löschen und Neuerstellen mit “valid until” weiterhin anmelden.
Mir ist aber aufgefallen, dass bei der Anmeldung keine Passwortabfrage erfolgte.
Ist in der Konfigurationsdatei etwas falsch eingestellt ?