Ten eerste is het belangrijk om te begrijpen dat voor de meeste Unix-distributies de standaard Postgres-gebruiker geen wachtwoord nodig heeft of gebruikt voor authenticatie. In plaats daarvan, afhankelijk van hoe Postgres oorspronkelijk is geïnstalleerd en welke versie u gebruikt, is de standaardverificatiemethode ident
of peer
.
ident
authenticatie gebruikt de identificatieserver van het besturingssysteem die draait op TCP-poort 113 om de inloggegevens van de gebruiker te verifiëren.
peer
authenticatie daarentegen wordt gebruikt voor lokale verbindingen en controleert of de ingelogde gebruikersnaam van het besturingssysteem overeenkomt met de gebruikersnaam voor de Postgres-database.
Log in en maak verbinding als standaardgebruiker
Voor de meeste systemen is de standaard Postgres-gebruiker postgres
en een wachtwoord is niet vereist voor authenticatie. Om een wachtwoord toe te voegen, moeten we dus eerst inloggen en verbinding maken als de postgres
gebruiker.
$ sudo -u postgres psql
Als je succesvol verbinding hebt gemaakt en de psql
. bekijkt prompt, spring naar beneden naar Het wachtwoord wijzigen sectie.
Als je een foutmelding krijgt dat de database "postgres" niet bestaat, probeer dan verbinding te maken met de template1
database in plaats daarvan en ga, indien succesvol, verder naar Het wachtwoord wijzigen .
$ sudo -u postgres psql template1
Verificatiefout
Als u een authenticatiefout krijgt wanneer u probeert verbinding te maken met de psql
client, moet u mogelijk het configuratiebestand voor Postgres-verificatie (pg_hfa.conf) wijzigen.
Open het configuratiebestand, meestal te vinden op /etc/postgresql/#.#/main/pg_hba.conf
, waar #.#
is de Postgres-versie die u gebruikt:
$ sudo nano /etc/postgresql/9.3/main/pg_hba.conf
Het auth-configuratiebestand is een lijst met authenticatieregels. Blader door het bestand totdat u de eerste regel vindt met de postgres
gebruiker in de derde kolom (als een dergelijke regel bestaat). Maak indien nodig het commentaar van de regel ongedaan (verwijder de puntkomma), of anders, als de regel volledig ontbreekt, voeg de volgende regel toe aan de bovenkant van het bestand en sla uw wijzigingen op:
local all postgres peer
Deze authenticatieregel vertelt Postgres eenvoudig dat voor lokale verbindingen die tot stand zijn gebracht met alle databases voor de gebruiker postgres
, authenticeer met behulp van de peer
protocol.
Opmerking:Sommige oudere versies van Postgres geven de voorkeur aan de standaard authenticatiemethode ident, maar de meeste moderne installaties zullen in plaats daarvan peer gebruiken zoals hierboven gespecificeerd. Mogelijk moet u beide testen als uw resultaten verschillen.
Nu uw configuratiebestand is bijgewerkt, herhaalt u de stappen in Aanmelden en verbinding maken als standaardgebruiker sectie om verbinding mee te maken als de standaard postgres
gebruiker. Als dit is gelukt, gaat u verder met het wijzigen van het wachtwoord.
Het wachtwoord wijzigen
Met nu een verbinding met Postgres op de psql
prompt, geef de ALTER USER
commando om het wachtwoord voor de postgres
. te wijzigen gebruiker:
postgres=# ALTER USER postgres PASSWORD 'myPassword';
ALTER ROLE
Indien succesvol, zal Postgres een bevestiging van ALTER ROLE
uitvoeren zoals hierboven te zien.
Sluit ten slotte de psql
. af client met behulp van de \q
commando.
postgres=# \q
Je bent helemaal klaar. De standaard postgres
gebruiker heeft nu een wachtwoord gekoppeld aan het account voor gebruik in uw andere applicaties.