PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come impostare la password utente predefinita in PostgreSQL

In primo luogo, è importante capire che per la maggior parte delle distribuzioni Unix, l'utente Postgres predefinito non richiede né utilizza una password per l'autenticazione. Invece, a seconda di come Postgres è stato originariamente installato e quale versione stai utilizzando, il metodo di autenticazione predefinito sarà ident o peer .

ident l'autenticazione utilizza il server di identificazione del sistema operativo in esecuzione sulla porta TCP 113 per verificare le credenziali dell'utente.

peer l'autenticazione d'altra parte, viene utilizzata per le connessioni locali e verifica che il nome utente di accesso del sistema operativo corrisponda al nome utente per il database Postgres.

Accedi e connettiti come utente predefinito

Per la maggior parte dei sistemi, l'utente Postgres predefinito è postgres e non è richiesta una password per l'autenticazione. Quindi, per aggiungere una password, dobbiamo prima effettuare il login e connetterci come postgres utente.

$ sudo -u postgres psql

Se ti sei connesso correttamente e stai visualizzando psql prompt, passa a Modifica della password sezione.

Se hai ricevuto un messaggio di errore che indica che il database "postgres" non esiste, prova a connetterti al template1 database invece e, in caso di esito positivo, continua con Modifica della password .

$ sudo -u postgres psql template1

Errore di autenticazione

Se ricevi un errore di autenticazione quando tenti di connetterti a psql client, potrebbe essere necessario modificare il file di configurazione dell'autenticazione di Postgres (pg_hfa.conf).

Apri il file di configurazione, che in genere si trova in /etc/postgresql/#.#/main/pg_hba.conf , dove #.# è la versione di Postgres che stai utilizzando:

$ sudo nano /etc/postgresql/9.3/main/pg_hba.conf

Il file di configurazione auth è un elenco di regole di autenticazione. Scorri il file fino a individuare la prima riga che mostra il postgres user nella terza colonna (se tale riga esiste). Decommenta la riga se necessario (rimuovi il punto e virgola), o altrimenti se la riga manca del tutto, aggiungi la seguente riga all'inizio del file e salva le modifiche:

local all postgres peer

Questa regola di autenticazione dice semplicemente a Postgres che per le connessioni locali stabilite a tutti i database per l'utente postgres , autenticati usando il peer protocollo.

Nota:alcune versioni precedenti di Postgres preferiscono il metodo di autenticazione predefinito di ident, ma la maggior parte delle installazioni moderne utilizzerà invece il peer come specificato sopra. Potrebbe essere necessario testare entrambi se i risultati differiscono.

Ora con il file di configurazione aggiornato, ripeti i passaggi in Accedi e connettiti come utente predefinito sezione a cui provare a connettersi come predefinito postgres utente. Al termine, procedi con la modifica della password.

Modifica della password

Con una connessione ora stabilita con Postgres al psql prompt, emettere il ALTER USER comando per cambiare la password per il postgres utente:

postgres=# ALTER USER postgres PASSWORD 'myPassword';
ALTER ROLE

In caso di successo, Postgres emetterà una conferma di ALTER ROLE come visto sopra.

Infine, esci da psql client utilizzando il \q comando.

postgres=# \q

Hai finito. Il postgres predefinito l'utente ora dispone di una password associata all'account da utilizzare nelle altre applicazioni.