sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man ställer in standardanvändarlösenordet i PostgreSQL

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.


  1. PostgreSQL:FOREIGN KEY/ON DELETE CASCADE

  2. VÄLJ IN med Oracle

  3. Hitta och ersätt hela mysql-databasen

  4. Vilken är inställningen för att se tidsdelen med datum i Oracle PL/SQL-utvecklare?