För det första är det viktigt att förstå att för de flesta Unix-distributioner varken kräver eller använder standardpostgres-användaren ett lösenord för autentisering. Istället, beroende på hur Postgres ursprungligen installerades och vilken version du använder, kommer standardautentiseringsmetoden antingen vara ident
eller peer
.
ident
autentisering använder operativsystemets identifieringsserver som körs på TCP-port 113 för att verifiera användarens autentiseringsuppgifter.
peer
autentisering å andra sidan, används för lokala anslutningar och verifierar att det inloggade användarnamnet för operativsystemet matchar användarnamnet för Postgres-databasen.
Logga in och anslut som standardanvändare
För de flesta system är Postgres standardanvändare postgres
och ett lösenord krävs inte för autentisering. För att lägga till ett lösenord måste vi alltså först logga in och ansluta som postgres
användare.
$ sudo -u postgres psql
Om du lyckades ansluta och tittar på psql
hoppar du ner till Ändra lösenordet avsnitt.
Om du fick ett felmeddelande om att databasen "postgres" inte existerar, försök att ansluta till template1
databas istället och om det lyckas, fortsätt till Ändra lösenordet .
$ sudo -u postgres psql template1
Autentiseringsfel
Om du får ett autentiseringsfel när du försöker ansluta till psql
klient kan du behöva ändra Postgres-autentiseringskonfigurationsfilen (pg_hfa.conf).
Öppna konfigurationsfilen, vanligtvis på /etc/postgresql/#.#/main/pg_hba.conf
, där #.#
är Postgres-versionen du använder:
$ sudo nano /etc/postgresql/9.3/main/pg_hba.conf
Auth-konfigurationsfilen är en lista över autentiseringsregler. Rulla nedåt i filen tills du hittar den första raden som visar postgres
användare i den tredje kolumnen (om en sådan rad finns). Avkommentera raden om det behövs (ta bort semikolonet), eller på annat sätt om raden saknas helt, lägg till följande rad överst i filen och spara dina ändringar:
local all postgres peer
Denna autentiseringsregel säger helt enkelt till Postgres att för lokala anslutningar upprättade till alla databaser för användaren postgres
, autentisera med peer
protokoll.
Obs:Vissa äldre versioner av Postgres föredrar standardautentiseringsmetoden för ident, men de flesta moderna installationer kommer att använda peer som specificerats ovan istället. Du kan behöva testa båda om dina resultat skiljer sig.
Nu med din konfigurationsfil uppdaterad upprepar du stegen i Logga in och anslut som standardanvändare sektion för att försöka ansluta till som standard postgres
användare. När du lyckats, fortsätt med att ändra lösenordet.
Ändra lösenordet
Med en anslutning nu upprättad till Postgres vid psql
fråga, utfärda ALTER USER
kommando för att ändra lösenordet för postgres
användare:
postgres=# ALTER USER postgres PASSWORD 'myPassword';
ALTER ROLE
Om det lyckas kommer Postgres att mata ut en bekräftelse på ALTER ROLE
som ses ovan.
Avsluta slutligen psql
klient genom att använda \q
kommando.
postgres=# \q
Allt är klart. Standard postgres
användaren har nu ett lösenord kopplat till kontot för användning i dina andra applikationer.