Zakładając, że jesteś administratorem maszyny, Ubuntu przyznał ci prawo do sudo do uruchamiania dowolnego polecenia jako dowolny użytkownik.
Zakładając również, że nie ograniczyłeś praw w pg_hba.conf
pliku (w /etc/postgresql/9.1/main
katalogu), powinien zawierać tę linię jako pierwszą regułę:
local all postgres peer
(Informacje o lokalizacji pliku: 9.1
to główna wersja postgres i main
nazwa twojego „klastra”. Będzie się różnić, jeśli używasz nowszej wersji postgres lub nazw innych niż domyślne. Użyj pg_lsclusters
polecenia, aby uzyskać te informacje dla twojej wersji / systemu).
W każdym razie, jeśli pg_hba.conf
plik nie ma tej linii, edytuj plik, dodaj go i przeładuj usługę za pomocą sudo service postgresql reload
.
Wtedy powinieneś być w stanie zalogować się psql
jako superużytkownik postgres za pomocą tego polecenia powłoki:
sudo -u postgres psql
Po wejściu do psql wydaj polecenie SQL:
ALTER USER postgres PASSWORD 'newpassword';
W tym poleceniu postgres
jest nazwą superużytkownika. Jeśli użytkownik, którego hasło zostało zapomniane ritesh
, byłby, polecenie wyglądałoby tak:
ALTER USER ritesh PASSWORD 'newpassword';
Referencje: PostgreSQL 9.1.13 Dokumentacja, Rozdział 19. Uwierzytelnianie klienta
Pamiętaj, że musisz wpisać postgres z pojedynczym S na końcu
Jeśli pozostawienie hasła w postaci zwykłego tekstu w historii poleceń lub w dzienniku serwera jest problemem, psql zapewnia interaktywną meta-polecenie, aby tego uniknąć, jako alternatywę dla ALTER USER ... PASSWORD
:
\password username
Pyta o hasło, wpisując podwójnie ślepą próbę, następnie haszuje je zgodnie z password_encryption
ustawieniem i wydaje ALTER USER
polecenie do serwera z zaszyfrowaną wersją hasła zamiast wersji jawnej.