rimuovere i requisiti di password per gli utenti postgres


47

Comprendo che, al momento dell'installazione, PostgreSQL non ha password per l'utente root db (postgres):

postgres=# select usename, passwd is null from pg_shadow;
 usename  | ?column? 
----------+----------
 postgres | t
(1 row)

... e si consiglia di impostarlo con:

alter role postgres password '<<very-secret>>';

(e quindi aggiorna il pg_hba.conffile di conseguenza)

La mia domanda è: qual è l'SQL da utilizzare per tornare alla situazione precedente quando non era necessaria alcuna password per l'utente postgres.

In generale, come posso rimuovere i requisiti di password per qualsiasi ruolo? Non sto chiedendo come modificare la password, ma piuttosto come rimuovere il requisito della password ( passwdcolonna nulla nella tabella pg_shadow).

Risposte:


55

Se una password è richiesta o meno non ha nulla a che fare con pg_shadowe se una password è effettivamente definita per l'utente. Sì, lo so, è strano.

pg_hba.confcontrolla il metodo di autenticazione. Se si desidera richiedere una password, utilizzare l' md5autenticazione. Se si desidera consentire l'accesso senza password a nessuno, utilizzare trust. Se vuoi richiedere lo stesso nome utente nel sistema operativo di PostgreSQL, usa peer(UNIX, solo per connessioni locali) o sspi(Windows).

Se è stata impostata una password, ma pg_hba.confnon dice a PostgreSQL di richiederla, la password viene ignorata.

Se pg_hba.confdice a PostgreSQL di chiedere una password ma non è stata impostata alcuna impostazione, tutti i tentativi di accesso falliranno indipendentemente dalla password fornita.


12

L'utente postgres di default non ha password. Per rimuovere una password utente (in questo caso per l'utente / ruolo postgres):

alter role postgres password null;

Dobbiamo anche impostare l'autenticazione su trustin pg_hba.conf- view details [ https://dba.stackexchange.com/a/19657/52550]


3
ora non riesco ad accedere a psql
Roberth Solís il

3
Sì, ora mi viene chiesta una password e non riesco ad accedere ...
Amalgovinus,

1
questo comando mi vieta da Postgres - come ha detto @Amalgovinus.
Nam G VU,

1
Se non riesci ad accedere a causa dell'errore psql: fe_sendauth: no password supplied, modifica il tuo C:\Program Files\PostgreSQL\10\data\pg_hba.confe sostituiscilo md5con trustnext to 127.0.0.1/32under IPv4 local connectionse next to ::1/128underIPv6 local connections
Marco Lackovic

1

Questo ha funzionato per me:

alter role postgres password '';


4
Quando lo faccio in postgres 10, viene visualizzato l'errore "AVVISO: la stringa vuota non è una password valida, che cancella la password". Ma poi cambia la mia password e non riesco ad accedere con nulla! WTF !!
Amalgovinus,

@Amalgovinus vedi il mio commento alla risposta di lalligood
Marco Lackovic
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.