ฉันมีฐานข้อมูล PostgreSQL ที่ฉันต้องการกำหนดค่าเพื่อยอมรับการเชื่อมต่อขาเข้าทั้งหมดโดยไม่คำนึงถึงที่อยู่ IP ต้นทาง จะกำหนดค่าในไฟล์ pg_hba.conf ได้อย่างไร? ฉันใช้ postgreSQL เวอร์ชัน 8.4
ฉันมีฐานข้อมูล PostgreSQL ที่ฉันต้องการกำหนดค่าเพื่อยอมรับการเชื่อมต่อขาเข้าทั้งหมดโดยไม่คำนึงถึงที่อยู่ IP ต้นทาง จะกำหนดค่าในไฟล์ pg_hba.conf ได้อย่างไร? ฉันใช้ postgreSQL เวอร์ชัน 8.4
คำตอบ:
เพียงแค่ใช้0.0.0.0/0
.
host all all 0.0.0.0/0 md5
ตรวจสอบให้แน่ใจว่าlisten_addresses
in postgresql.conf
(หรือALTER SYSTEM SET
) อนุญาตการเชื่อมต่อขาเข้าบนอินเตอร์เฟส IP ที่มีอยู่ทั้งหมด
listen_addresses = '*'
หลังจากการเปลี่ยนแปลงคุณต้องโหลดการกำหนดค่าใหม่ วิธีหนึ่งในการดำเนินการนี้คือดำเนินการในSELECT
ฐานะ superuser
SELECT pg_reload_conf();
::/0
เมื่อเทียบกับ0.0.0.0/0
เมื่อแก้ไขไฟล์ pg_hba.conf
postgres
มีรหัสผ่านที่คาดเดายาก: sudo -u postgres psql
, \password
.
0.0.0.0/0
สำหรับที่อยู่ IPv4 ทั้งหมด
::0/0
สำหรับที่อยู่ IPv6 ทั้งหมด
all
เพื่อให้ตรงกับที่อยู่ IP ใด ๆ
samehost
เพื่อให้ตรงกับที่อยู่ IP ของเซิร์ฟเวอร์ใด ๆ
samenet
เพื่อจับคู่ที่อยู่ในเครือข่ายย่อยใด ๆ ที่เซิร์ฟเวอร์เชื่อมต่อโดยตรง
เช่น
host all all 0.0.0.0/0 md5
นอกเหนือจากคำตอบที่ยอดเยี่ยมข้างต้นหากคุณต้องการให้ IP บางช่วงได้รับอนุญาตคุณสามารถแก้ไข/var/lib/pgsql/{VERSION}/data
ไฟล์และใส่สิ่งที่ต้องการได้
host all all 172.0.0.0/8 trust
จะยอมรับการเชื่อมต่อขาเข้าจากโฮสต์ใด ๆ ของช่วงข้างต้น ที่มา: http://www.linuxtopia.org/online_books/database_guides/Practical_PostgreSQL_database/c15679_002.htm
กำหนดค่าไฟล์ทั้งหมดด้วย postgres 12 บน centos:
ขั้นตอนที่ 1:ค้นหาและแก้ไขไฟล์
sudo vi /var/lib/pgsql/12/data/pg_hba.conf
กด "i" และที่บรรทัด IPv4 เปลี่ยน
host all all 0.0.0.0/0 md5
ขั้นตอนที่ 2:ค้นหาและแก้ไขไฟล์ postgresql.conf
sudo vi /var/lib/pgsql/12/data/postgresql.conf
เพิ่มบรรทัดสุดท้าย: listen_addresses = '*': wq! (บันทึกไฟล์) - ขั้นตอนที่ 3: รีสตาร์ท
systemctl restart postgresql-12.service
เพิ่มบรรทัดนี้ในpg_hba.confของโฟลเดอร์ postgres
host all all all trust
"trust" ช่วยให้ผู้ใช้ทุกคนสามารถเชื่อมต่อได้โดยไม่ต้องใช้รหัสผ่าน
md5
หรือไม่? ฉันคิดว่าจำเป็นต้องใช้ประเภทtrust
...