การตั้งค่าเพื่ออนุญาตให้พีซีเครื่องอื่นเชื่อมต่อกับฐานข้อมูล PostgreSQL (เวอร์ชัน Windows)

ปรับปรุงหน้า :
วันที่สร้างเพจ :

สภาพแวดล้อมในการทํางาน

PostgreSQL
  • PostgreSQL 15
Windows (เซิร์ฟเวอร์)
  • วินโดวส์เซิร์ฟเวอร์ 2019
Windows (ไคลเอ็นต์)
  • หน้าต่าง 11

ข้อกําหนดเบื้องต้น

หน้าต่าง
  • วินโดวส์เซิร์ฟเวอร์ 2019
  • วินโดวส์ เซิร์ฟเวอร์ 2016
  • เวอร์ชันอื่นอาจใช้งานได้ แต่ไม่รองรับอย่างเป็นทางการ

ไฟร์วอลล์

ใน Windows ไฟร์วอลล์จะป้องกันการเชื่อมต่ออื่นที่ไม่ใช่พอร์ตมาตรฐาน ต้องกําหนดค่าให้สามารถเชื่อมต่อบนพอร์ตเพื่อเชื่อมต่อกับ PostgreSQL

หลังจากเข้าสู่ระบบสภาพแวดล้อม Windows ฝั่งเซิร์ฟเวอร์แล้ว ให้พิมพ์ "ไฟร์วอลล์" จากเมนูเริ่มแล้วเลือก เปิดไฟร์วอลล์ Windows Defender พร้อมความปลอดภัยขั้นสูง

เมื่อหน้าจอเปิดขึ้น ให้เลือก "กฎขาเข้า" จากเมนูทางด้านซ้าย แล้วคลิก "กฎใหม่..." จากเมนูทางด้านขวา

สําหรับประเภทกฎ ให้เลือกพอร์ต

สําหรับ โปรโตคอลและพอร์ต ให้เลือก TCP เป็นโปรโตคอล สําหรับพอร์ต ให้ป้อนค่าเริ่มต้น 5432 หากคุณระบุหมายเลขพอร์ตอื่นในการติดตั้ง PostgreSQL ให้ป้อนหมายเลขพอร์ตนั้น

สําหรับ "การดําเนินการ" ให้เลือก "อนุญาตการเชื่อมต่อ"

ใน "โปรไฟล์" ให้ทําเครื่องหมายที่ "โดเมน" และ "ส่วนตัว" ฉันคิดว่าไม่น่าเป็นไปได้ที่คุณจะปล่อยให้ฐานข้อมูลเข้าถึงในสภาพแวดล้อม "สาธารณะ" ที่จะอนุญาตให้บุคคลที่ไม่ระบุรายละเอียดเข้าถึงได้

ป้อนชื่อและคําอธิบายที่ไม่บังคับ กรุณาป้อนเพื่อให้เข้าใจจุดประสงค์ในการเปิดพอร์ตได้ง่าย

เมื่อเพิ่มแล้วจะปรากฏในรายการ

postgresql.conf

ตรวจสอบการตั้งค่าใน postgresql.conf ฉันไม่คิดว่าคุณจําเป็นต้องเปลี่ยนในเวอร์ชัน 15

มีไฟล์ในตําแหน่งต่อไปนี้ดังนั้นให้เปิดด้วยแอปพลิเคชันแผ่นจดบันทึก โปรดตรวจสอบเส้นทางเนื่องจากแตกต่างกันไปตามเวอร์ชัน

C:\Program Files\PostgreSQL\15\data\postgresql.conf

listen_addresses มองหาพารามิเตอร์ที่เรียกว่า คุณไม่จําเป็นต้องเปลี่ยนหากตั้งค่าดังนี้:

listen_addresses = '*'

pg_hba.conf

โดยค่าเริ่มต้น ฐานข้อมูลสามารถเข้าถึงได้จากสภาพแวดล้อมภายในเครื่องเท่านั้น

มีไฟล์ในตําแหน่งต่อไปนี้ดังนั้นให้เปิดด้วยแอปพลิเคชันแผ่นจดบันทึก โปรดตรวจสอบเส้นทางเนื่องจากแตกต่างกันไปตามเวอร์ชัน

C:\Program Files\PostgreSQL\15\data\pg_hba.conf

มีความเป็นไปได้ที่คุณอาจทําผิดพลาดในการแก้ไข ดังนั้นโปรดคัดลอกและสํารองไฟล์ก่อนเปลี่ยนเผื่อไว้

หากคุณเลื่อนลงไปด้านล่าง คุณจะพบบรรทัดต่อไปนี้: สิ่งนี้บ่งชี้ว่า IPv4 สามารถเข้าถึงได้เฉพาะในเครื่องเท่านั้น

# TYPE  DATABASE        USER            ADDRESS                 METHOD
  :
host    all             all             127.0.0.1/32            scram-sha-256
  :

ตั้งค่า ADDRESS นี้เป็นรายการเดียวหรือช่วงเพื่อให้สามารถเข้าถึงได้จากพีซีเครื่องอื่น ค่าที่คุณตั้งไว้จะขึ้นอยู่กับเครือข่ายที่คุณกําลังสร้าง หากคุณไม่แน่ใจ โปรด 0.0.0.0/0 อนุญาตทั้งหมดที่มี หรือ samenet พิมพ์เพื่ออนุญาตช่วงทั้งหมดของเครือข่ายเดียวกันกับเซิร์ฟเวอร์

ตัวอย่างการกําหนดค่า

# TYPE  DATABASE        USER            ADDRESS                 METHOD
  :
host    all             all             192.168.0.0/24          scram-sha-256
  :

รีสตาร์ทบริการ

pg_hba.conf ไฟล์การกําหนดค่าเหล่านี้จะถูกอ่านเมื่อ PostgreSQL เริ่มต้นเท่านั้น ดังนั้นคุณต้องรีสตาร์ทบริการ อย่างไรก็ตามมันจะถูกโหลดเมื่อ PostgreSQL เริ่มทํางานดังนั้นหากคุณรีสตาร์ท Windows มันจะถูกโหลดในเวลานั้น

หลังจากเปิดเมนูเริ่มแล้ว ให้พิมพ์ "บริการ" เพื่อเปิดใช้งาน

ค้นหาและเลือก "postgresql-x64-15 - PostgreSQL Server 15" จากรายการตรงกลาง โปรดทราบว่าชื่อจะแตกต่างกันไปตามเวอร์ชัน เมื่อเลือกแล้ว ให้คลิก "รีสตาร์ทบริการ" จากด้านซ้าย

การตรวจสอบการเชื่อมต่อจากพีซีเครื่องอื่น

มาดูกันว่าเราสามารถเชื่อมต่อกับฐานข้อมูลจากพีซีเครื่องอื่นได้หรือไม่ ข้อมูลปลายทางการเชื่อมต่อจะแตกต่างกันไปตามสภาพแวดล้อม ดังนั้นจึงอธิบายเฉพาะขั้นตอนที่นี่เท่านั้น ฉันใช้ pgAdmin เพื่อเชื่อมต่อในครั้งนี้ แต่ฉันคิดว่าคุณสามารถเชื่อมต่อกับเครื่องมือการเข้าถึงฐานข้อมูลอื่นๆ ได้เช่นกัน

หลังจากเริ่ม pgAdmin บนพีซีไคลเอ็นต์แยกจากเซิร์ฟเวอร์ฐานข้อมูล ให้คลิกขวาที่เซิร์ฟเวอร์แล้วเลือก "ลงทะเบียน>เซิร์ฟเวอร์..."

บนแท็บ ทั่วไป ชื่อควรเป็นชื่อที่จะช่วยคุณระบุเซิร์ฟเวอร์

เลือกแท็บการเชื่อมต่อ ป้อน "ชื่อโฮสต์/ที่อยู่", "ข้อมูลการบํารุงรักษา", "ชื่อผู้ใช้" และ "รหัสผ่าน" หากคุณไม่ต้องการป้อนรหัสผ่านทุกครั้ง ให้เปิด "บันทึกรหัสผ่าน" อย่างไรก็ตาม pdAdmin อาจไม่สามารถแก้ไขชื่อของ Host ได้ ดังนั้นในกรณีนั้น ให้ระบุที่อยู่ IP โดยตรง

กรอกข้อมูลในช่องป้อนข้อมูลอื่นๆ ตามต้องการ เมื่อเสร็จแล้ว ให้คลิกปุ่ม "บันทึก"

หากคุณสามารถเชื่อมต่อกับฐานข้อมูลของเซิร์ฟเวอร์เป้าหมาย