2012-12-26 13 views
11

Mam zainstalowane PostgreSQL 9.2 na Linux (Kubuntu) i ostatniej wersji pgadmin3, ale kiedy je połączyć mam ten błąd:pgAdmin daje mi błąd: brak hasła dostarczane

Wystąpił błąd: Błąd podczas łączenia się z serwerem: fe_sendauth: brak hasła

Co mogę zrobić?

Mam również skonfigurowany tomcat dla mojej aplikacji internetowej w java. W rzeczywistości postgresql działał przed wypróbowaniem mojej aplikacji.

+0

Czy próbowałeś * podać * żądane hasło? –

+3

Moje hasło jest puste, więc właśnie wprowadziłem, kiedy było żądanie. – DarkCoffee

+1

Czy możesz spróbować połączyć się z linii poleceń? '$ psql -U ' możesz pominąć -h , jeśli chcesz się połączyć używając gniazd domeny unix. – Eelke

Odpowiedz

8

To, czy hasło jest wymagane, zależy od ustawień podanych w pg_hba.conf. Istnieją różne sposoby łączenia się - mogą mieć zastosowanie różne ustawienia w pliku pg_hba.conf.

cytuję pomocy dostarczonego z pgAdmin dla „host” pola w połączeniu („serwer”) ustawienia:

The host is the IP address of the machine to contact, or the fully qualified domain name. On Unix based systems, the address field may be left blank to use the default PostgreSQL Unix Domain Socket on the local machine, or be set to an alternate path containing a PostgreSQL socket. If a path is entered, it must begin with a “/”. The port number may also be specified.

Po podłączeniu poprzez Unix gniazda zasady „lokalny” Zastosuj. Podczas gdy połączenie przez TCP/IP "host" (lub "hostssl") ma zastosowanie.

Jeśli masz taką linię, jak to u góry pliku pg_hba.conf:

local all  all  peer 

czyli

local all  all  ident 

.. wtedy można podłączyć lokalnie bez hasła, jeśli użytkownik systemu jest "postgres" i twój użytkownik bazy danych to także "postgres".

+2

I changhed
# "local" jest dla Unix połączeń gniazd domeny tylko
Wszystkie lokalne aplikacji peer # IPv4 lokalnych połączeń: hosta 127.0.0.1 wszystko wszystko/32 zaufanie
# Połączenia lokalne IPv6:
host wszystkie :: 1/128 zaufanie
i to działa! Dziękuję Ci!! – DarkCoffee

+0

@DarkCoffee: Rozumiem, że ustawienie 'trust' jest niebezpieczne. –

4

Rozumiem, że to jest pytanie ma lat, ale wpadłem na ten sam problem dzisiaj i mam rozwiązanie, które używa trust w ograniczony, ale użyteczny sposób.

Podobnie jak w wielu sklepach deweloperskich, gdy deweloperzy potrzebują hasła postgresowego QA, po prostu krzyczą, wysyłają wiadomość, wysyłają ją pocztą elektroniczną, piszą na czołach itp. A ja mówię: "To naprawdę źle. Muszę znaleźć sposób na wykorzystanie PKI tutaj. " Używamy również pgAdmin3.

pierwsze, dodać linię podobnego do pg_hba.conf, gdzie dev reprezentuje użytkownika dla deweloperów w swoim sklepie:

host all dev 127.0.0.1/32 trust

upuść klucz publiczny deweloperów w swoim folderze authorized_keys na Serwer bazy danych. Teraz mają je ssh do serwera z flagą -L z polecenia podobnego do poniższego:

ssh -i ~/.ssh/id_rsa -L5432:127.0.0.1:5432 -vvv 101.102.103.104

Pozwala to korzystać z portu postgres'owy jak gdyby localhost. Oczywiście, zamień klucz, serwer i upewnij się, że mapujesz do otwartego portu lokalnie (jeśli masz lokalny postgres uruchomiony, to prawdopodobnie jest powiązany z 5432). Używam dość obszernej flagi, dzięki czemu mogę łatwo rozwiązać wszelkie problemy związane z ssh.

otworzyć kolejny zacisk i wydaj polecenie:

psql -h 127.0.0.1 -U dev -p 5432

powinny mieć dostęp do bazy danych i nigdy nie być poproszony o hasło, które myślę, że jest super, bo w przeciwnym razie, deweloperów po prostu uchylić hasło dookoła z małym poszanowaniem bezpieczeństwa, przekazanie go jak cukierki na Halloween.

W tej chwili PgAdmin3 będzie nadal monitować o podanie hasła, nawet jeśli - zwykły jak dzień - nie jest to konieczne. Ale inne GUI programu Postgres nie będą. Wypróbuj Postico. Jest w wersji beta, ale działa świetnie.

Mam nadzieję, że ta odpowiedź pomoże każdemu, kto mnie lubi, raczej używać PKI do uwierzytelniania postgreSQL zamiast dzielenia się hasłami.

Powiązane problemy