PgAdmin III - วิธีเชื่อมต่อกับฐานข้อมูลเมื่อรหัสผ่านว่างเปล่า?


21

ฉันติดตั้ง PostgreSQL 9.1 บนพีซีของฉัน (Win 7) ฉันมีแอปพลิเคชัน Java ขนาดเล็กเชื่อมต่อกับlogin=saและpassword=""ด้วย การเชื่อมต่อใช้งานได้

อย่างไรก็ตามมันถูกปฏิเสธจาก PgAdmin III เอง ฉันเข้าใจ:

Error connecting to the server: fe_sendauth: no password supplied

ฉันจะเชื่อมต่อกับฐานข้อมูลของฉันจาก PgAdmin III ด้วยรหัสผ่านว่างได้อย่างไร

แก้ไข

นี่เป็นเพียงการทดสอบไม่ใช่รหัสการผลิต


ฉันไม่รู้แน่ชัด แต่มันง่ายที่จะจินตนาการว่า PgAdmin ไม่สนับสนุนสิ่งนั้น
Peter Eisentraut

Java App ของคุณบนไคลเอนต์เดียวกับ pgAdmin
แจ็คดักลาส

คำตอบ:


10

ฉันสามารถเชื่อมต่อกับอินสแตนซ์ postgres ของฉันจาก pgAdmin III โดยไม่ต้องใช้รหัสผ่านสำหรับผู้ใช้ใด ๆ รวมทั้ง superusers postgresเช่น

เนื่องจากคุณกำลังเชื่อมต่อตกลงจากไคลเอนต์อื่นจึงไม่มีเหตุผลที่คุณไม่ควรเชื่อมต่อจาก pgAdmin หากอยู่บนเวิร์กสเตชันเดียวกัน - เว้นแต่ว่ากฎไฟร์วอลล์บางตัวในไคลเอนต์นั้นอนุญาตให้มีโปรแกรมหนึ่ง แต่ไม่ใช่โปรแกรมอื่น

หากปัญหานี้เกิดเฉพาะกับไคลเอนต์นี้คุณอาจต้องเปลี่ยนอย่างน้อยหนึ่งอย่าง:

  • pg_hba.conf
เป็นโฮสต์ทั้งหมดไว้วางใจ 192.168.0.nnn / 32
  • postgresql.conf
Listen_addresses = '*'
  • ไฟร์วอลล์บนเซิร์ฟเวอร์ postgres ของคุณเช่น iptables:
-A INPUT -s 192.168.0.nnn -m state - state ใหม่ -j ACCEPT

แต่ฉันขอแนะนำให้คุณอย่าทำสิ่งนี้ คู่มือบอกว่าเหตุผลดังต่อไปนี้:

การตรวจสอบความน่าเชื่อถือนั้นเหมาะสำหรับการเชื่อมต่อ TCP / IP เท่านั้นหากคุณเชื่อถือผู้ใช้ทุกคนในทุกเครื่องที่ได้รับอนุญาตให้เชื่อมต่อกับเซิร์ฟเวอร์โดยบรรทัด pg_hba.conf ที่ระบุความน่าเชื่อถือ จึงไม่ค่อยมีเหตุผลที่จะใช้ความน่าเชื่อถือสำหรับการเชื่อมต่อ TCP / IP อื่น ๆ นอกเหนือจากที่ได้จาก localhost (127.0.0.1)

ให้พิจารณาอย่างใดอย่างหนึ่งแทน:

  • ใช้รหัสผ่านและการระบุ md5
  • ทันเนลพอร์ต 5432 ผ่าน ssh

31

ฉันพบคำตอบนี้ที่อื่น

หากฐานข้อมูลของคุณอยู่ในโฮสต์ท้องถิ่นให้ลองปล่อยให้ฟิลด์โฮสต์นั้นว่างเปล่าในการเชื่อมต่อซึ่งตรงข้ามกับการใช้“ localhost” หรือ“ 127.0.0.1″ สิ่งนี้บอกให้ PgAdmin เชื่อมต่อผ่านซ็อกเก็ตยูนิกซ์โลคัลแทน TCP


ลองเพิ่มว่าคำถามเดิมเกี่ยวกับระบบ Windows
dezso

3
อ่านี่มันแน่นอน ออกจากโฮสต์ว่างเปล่าทำงาน
วันธรรมดา

คุณไม่สามารถปล่อยให้ฟิลด์นี้ว่างได้ซึ่งเป็นสิ่งจำเป็น
Athlan

ดูเหมือนว่าการปล่อยให้ฟิลด์โฮสต์ว่างจะทำงานเฉพาะในกรณีที่คุณมีบทบาทใน pg ชื่อเป็นชื่อผู้ใช้ระบบของคุณ (บน Linux) มิฉะนั้นฉันคิดว่าจำเป็นต้องใช้แผนที่ผู้ใช้
a1an

ที่สมบูรณ์แบบ! ด้วยการติดตั้ง postgresql และ pgadmin ที่สดใหม่เปลี่ยนpg_hba.confเป็นพูดtrustแทนpeerในบรรทัดนี้ - local all postgres trustและปล่อยให้ช่องโฮสต์และรหัสผ่านว่างเปล่าใน pgadmin ทำให้ทุกอย่างทำงานได้! ฉันหวังว่า pgadmin จะเพิ่มช่องทำเครื่องหมายเพื่อเปลี่ยนเป็นซ็อกเก็ตแทน UI ที่ยากต่อการค้นพบ
Anupam Jain
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.