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.