Po pierwsze, ważne jest, aby zrozumieć, że w większości dystrybucji Uniksa domyślny użytkownik Postgresa nie wymaga ani nie używa hasła do uwierzytelniania. Zamiast tego, w zależności od tego, jak oryginalnie zainstalowano Postgres i jakiej wersji używasz, domyślną metodą uwierzytelniania będzie ident
lub peer
.
ident
uwierzytelnianie wykorzystuje serwer identyfikacji systemu operacyjnego działający na porcie TCP 113 w celu zweryfikowania poświadczeń użytkownika.
peer
z drugiej strony uwierzytelnianie jest używane do połączeń lokalnych i sprawdza, czy nazwa zalogowanego użytkownika systemu operacyjnego jest zgodna z nazwą użytkownika bazy danych Postgres.
Zaloguj się i połącz jako użytkownik domyślny
W większości systemów domyślnym użytkownikiem Postgresa jest postgres
a hasło nie jest wymagane do uwierzytelnienia. Tak więc, aby dodać hasło, musimy najpierw zalogować się i połączyć jako postgres
użytkownika.
$ sudo -u postgres psql
Jeśli udało Ci się połączyć i wyświetlasz psql
monit, przejdź do Zmiana hasła sekcja.
Jeśli otrzymałeś błąd z informacją, że baza danych „postgres” nie istnieje, spróbuj połączyć się z template1
zamiast tego i jeśli się powiedzie, przejdź do Zmiany hasła .
$ sudo -u postgres psql template1
Błąd uwierzytelniania
Jeśli otrzymasz błąd uwierzytelniania podczas próby połączenia z psql
klienta, może być konieczna zmiana pliku konfiguracyjnego uwierzytelniania Postgres (pg_hfa.conf).
Otwórz plik konfiguracyjny, zwykle znajdujący się w /etc/postgresql/#.#/main/pg_hba.conf
, gdzie #.#
to wersja Postgresa, której używasz:
$ sudo nano /etc/postgresql/9.3/main/pg_hba.conf
Plik konfiguracyjny auth to lista reguł uwierzytelniania. Przewiń plik w dół, aż znajdziesz pierwszą linię wyświetlającą postgres
użytkownika w trzeciej kolumnie (jeśli taka linia istnieje). W razie potrzeby usuń komentarz z wiersza (usuń średnik) lub w przeciwnym razie, jeśli całkowicie go brakuje, dodaj następujący wiersz na początku pliku i zapisz zmiany:
local all postgres peer
Ta reguła uwierzytelniania po prostu mówi Postgresowi, że dla lokalnych połączeń nawiązanych ze wszystkimi bazami danych dla użytkownika postgres
, uwierzytelnij się za pomocą peer
protokół.
Uwaga:Niektóre starsze wersje Postgresa preferują domyślną metodę uwierzytelniania, jaką jest ident, ale większość nowoczesnych instalacji będzie korzystać z peera, jak określono powyżej. Być może będziesz musiał przetestować oba, jeśli Twoje wyniki się różnią.
Teraz, po zaktualizowaniu pliku konfiguracyjnego, powtórz kroki opisane w Zaloguj się i połącz jako użytkownik domyślny sekcja, z którą chcesz się połączyć jako domyślny postgres
użytkownik. Gdy się powiedzie, przejdź do zmiany hasła.
Zmiana hasła
Po nawiązaniu połączenia z Postgresem w psql
monit, wydaj polecenie ALTER USER
polecenie do zmiany hasła dla postgres
użytkownik:
postgres=# ALTER USER postgres PASSWORD 'myPassword';
ALTER ROLE
Jeśli się powiedzie, Postgres wyświetli potwierdzenie ALTER ROLE
jak widać powyżej.
Na koniec wyjdź z psql
klienta za pomocą \q
polecenie.
postgres=# \q
Wszystko gotowe. Domyślny postgres
użytkownik ma teraz hasło powiązane z kontem do użytku w innych aplikacjach.