PGAdmin III - Làm cách nào để kết nối với cơ sở dữ liệu khi mật khẩu trống?


21

Tôi đã cài đặt PostgreSQL 9.1 trên PC của mình (Win 7). Tôi có một ứng dụng Java nhỏ kết nối thành công với nó login=sapassword="". Kết nối hoạt động.

Tuy nhiên, nó bị từ chối từ chính PGAdmin III. Tôi có:

Error connecting to the server: fe_sendauth: no password supplied

Làm cách nào để kết nối với cơ sở dữ liệu của tôi từ PGAdmin III với mật khẩu trống?

CHỈNH SỬA

Đây chỉ là một thử nghiệm, không phải mã sản xuất.


Tôi không biết chắc chắn, nhưng thật dễ để tưởng tượng rằng PGAdmin không hỗ trợ điều đó.
Peter Eisentraut

ứng dụng Java của bạn trên cùng một máy khách với pgAdmin?
Jack Douglas

Câu trả lời:


10

Tôi có thể kết nối với ví dụ postgres của mình từ pgAdmin III mà không cần mật khẩu cho bất kỳ người dùng nào, kể cả siêu nhân như postgres.

Vì bạn đang kết nối ok từ một máy khách khác, không có lý do gì bạn không thể kết nối từ pgAdmin nếu chúng ở trên cùng một máy trạm - trừ khi một số quy tắc tường lửa trên chính máy khách đó cho phép một chương trình chứ không phải một chương trình khác.

Nếu sự cố cụ thể đối với khách hàng này, bạn có thể cần thay đổi một hoặc nhiều:

  • pg_hba.conf
lưu trữ tất cả 192.168.0.nnn / 32 tin tưởng
  • postgresql.conf
nghe_addresses = '*'
  • tường lửa trên máy chủ postgres của bạn, ví dụ: iptables:
-A INPUT -s 192.168.0.nnn -m state --state MỚI -j CHẤP NHẬN

Nhưng tôi khuyên bạn không nên làm điều này. Hướng dẫn nói như sau với lý do chính đáng:

xác thực tin cậy chỉ phù hợp với các kết nối TCP / IP nếu bạn tin tưởng mọi người dùng trên mọi máy được phép kết nối với máy chủ bằng các dòng pg_hba.conf chỉ định độ tin cậy. Rất hiếm khi sử dụng niềm tin cho bất kỳ kết nối TCP / IP nào ngoài các kết nối từ localhost (127.0.0.1).

Thay vào đó, hãy xem xét một trong hai:

  • sử dụng mật khẩu và nhận dạng md5
  • cổng hầm 5432 qua ssh

31

Tôi tìm thấy câu trả lời này ở nơi khác.

Nếu DB của bạn nằm trên máy chủ cục bộ, hãy thử để trống trường máy chủ trong kết nối trái ngược với việc sử dụng cục bộ cục bộ cục bộ trực tuyến hoặc phiên bản 127.0.0.1. Điều này báo cho PGAdmin kết nối thông qua ổ cắm unix cục bộ thay vì TCP.


Hãy thêm rằng câu hỏi ban đầu là về một hệ thống Windows.
dezso

3
Ah đây chính xác là nó. Để trống máy chủ làm việc.
basicdays

Bạn không thể để trống trường này, nó là bắt buộc.
Athlan

Có vẻ như để trống trường máy chủ chỉ hoạt động nếu bạn có vai trò trong pg có tên là tên người dùng hệ thống của bạn (trên Linux). Nếu không, tôi đoán bản đồ người dùng là cần thiết.
a1an

Hoàn hảo! Với một bản cài đặt mới của postgresql và pgadmin, thay đổi pg_hba.confthành nói trustthay vì peertrong dòng này - local all postgres trustvà để trống các trường và máy chủ mật khẩu trong pgadmin sẽ khiến mọi thứ hoạt động! Tôi ước pgadmin sẽ thêm một hộp kiểm để chuyển sang socket thay vì khó khám phá UI này.
Anupam Jain
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.