it-swarm-eu.dev

Po změně hesla se uživatel PostgreSQL nemůže připojit k serveru

Potkal jsem to se 4 rolemi, které jsem vytvořil:
Po změně hesla pro uživatele v pgAdmin III pomocí GUI (1) se tento uživatel již nemůže přihlásit.
pgAdmin III zobrazí chybovou zprávu:

An error has occurred:

Error connecting to the server: FATAL:  password authentication failed for user "sam"
FATAL:  password authentication failed for user "sam"

Můj systém: Postgresql 9.2 na Ubuntu 12.04

Existuje nějaký způsob, jak to opravit?

(1): přihlaste se s účtem postgres, klikněte pravým tlačítkem myši na přihlašovací role, přejděte na kartu „Definice“ a zadejte heslo

10
Cao Minh Tu

Je možné, že vás tato chyba PgAdmin chyba ( changelog ):

2012-11-28 AV 1.16.1 Ovládací prvky pro výběr data vrací ve výchozím nastavení úplné časové razítko, které může způsobit neúmyslné změny data u úloh a dat platnosti rolí. Ignorujte časovou část.

Bylo zjištěno, že tato chyba nastavila data vypršení platnosti hesla daleko v minulosti, například 1/1/1970. V tomto případě se chybová zpráva při pokusu o připojení neliší od nesprávného hesla.

Tato data vypršení platnosti můžete zkontrolovat pomocí:

SELECT usename,valuntil FROM pg_user;

a pokud se mýlí, resetujte je pomocí:

ALTER USER username VALID UNTIL 'infinity';

a upgradovat pgAdmin.

15
Daniel Vérité

Jednoduchá věc je přihlásit se pomocí psql nebo pgAdmin a

ALTER USER sam WITH PASSWORD 'new_password';

Pokud se nyní nemůžete přihlásit pomocí účtu superuživatele, můžete obnovit změnou nastavení pg_hba.conf pro tohoto uživatele a znovu načíst konfiguraci (někdy zjistím, že to vyžaduje restart serveru, ale nejsem si jistý proč).

Můžete přidat řádek, který vám umožní přihlásit se pomocí metody ident (peer in 9.2) (pokud můžete použít místní systémový účet se stejným jménem jako uživatel) pro místní připojení uživatele, nebo (pokud to není možné) nastaveno na „trust“ (velmi dočasně!). Pokud používáte důvěru, vraťte se co nejdříve zpět, protože to znamená „důvěru v to, že uživatel je tím, komu tvrdí“! a proto je toto nastavení nebezpečné ponechat aktivované mimo potřeby okamžité obnovy.

Po přihlášení se můžete výše uvedené heslo resetovat.

3
Chris Travers

Pro variantu Windows - tuto nepříjemnou chybu jsem také zažil kvůli pgAdmin pro moji instalaci systému Windows x64 verze 9.2. To nechalo moji produkci ochromenou.

Ve složce C:\Program Files\PostgreSQL\9.2\data Nebo C:\Program Files (x86)\PostgreSQL\9.**x**\data najdete textový soubor pg_hba.conf.

Vyhledejte následující řádky:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
Host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
Host    all             all             ::1/128                 md5

a změňte METHOD md5 na „trust“ takto:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
Host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
Host    all             all             ::1/128                 trust

Z Windows>Run Napište "services.msc" a [enter] najděte správnou instanci PostgreSQL a restartujte ji.

Vaše zabezpečení DB je nyní otevřeno! Dbejte na varování, abyste jej vrátili zpět na md5 po změně doby vypršení platnosti hesla uživatele na rok 2099 pro všechny relevantní uživatele.

2
Hoang Do

Právě jsem měl stejný problém a ukázalo se, že mám více uživatelů se stejným jménem (různé případy). Jakmile jsem sloučil vlastnictví a odstranil jeden, bylo to alespoň jasné. V závislosti na způsobu připojení nebyl případ nutně přenesen pro ověření.

1
George

Pokud jste to ještě nezkusili, zkontrolujte svůj soubor pg_hba.conf. Bude se jmenovat něco jako /var/lib/pgsql/9.3/data/pg_hba.conf (Fedora 20); možná budete muset použít 'find/-name pg_hba.conf' k nalezení.

Ve spodní části souboru změňte hodnoty „METHOD“ na „trust“ pro místní testování (úplné informace viz dokumenty postgres). Restartujte počítač a ujistěte se, že je vše spuštěno čisté a že jsou načteny nové parametry.

Doufejme, že to vyléčí tvé trápení. To vyřešilo mé problémy na Fedora 20 s PostgreSQL 9.3.

AKTUALIZACE 2016-10-14:

Na Ubuntu je požadovaný název souboru /etc/postgresql/9.5/main/pg_hba.conf. Pouze pro místní testování , upravte jej tak, aby vypadal takto:

...
#
# Database administrative login by Unix domain socket
local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
# local   all             all                                     peer
  local   all             all                                     trust
# IPv4 local connections:
# Host    all             all             127.0.0.1/32            md5
  Host    all             all             127.0.0.1/32            trust

Dva řádky s METHOD "trust" jsou nové. Umožňují připojení bez uživatelského jména/hesla.

Po dokončení budete muset restartovat server pomocí:

Sudo systemctl restart postgresql 
1
Alan Thompson