This content originally appeared on DEV Community and was authored by iconnext
ในตอนติดตั้ระบบฐานข้อมูล PostqreSQL ขึ้นมาจะมีการสร้างผู้ใช้งานชื่อ postgres ข้ึนมาโดยอัติโนมัติเพื่อบริหารจัดการฐานข้อมูลเบื้องต้น
ในบางสถานการณ์ที่เราลือรหัสผ่านของผู้ใช้งาน postgres ทำให้เราไม่สามารถเข้าไปบริหารจัดการบางอย่างได้ บทความนี้จะแสดงขบวนการ reset password ของผู้ใช้งาน postgres ในกรณีฉุกเฉิน
โดยในการ reset password จะดำเนินการผ่านไฟล์ pg_hba.conf ซึ่งจะิอยู่ที่ตำแหน่ง /var/lib/postgresql/data บน linux หรือ C:\Program Files\PostgreSQL\16\data บน Windows โดยไฟล์ดังกล่าวมีหน้าที่ในการควบคุมการ authentication จาก client ที่เชื่อมต่อเข้ามาโดย hba ย่อมาจาก host base authentication
1.ทำการสำรองไฟล์ pg_hba.conf โดยการเปลี่ยนตำแหน่ง หรือเปลี่ยนชื่อไฟล์ผ่านคำสั่ง
# cp pg_hba.conf pg_hba.conf.bak
2.เปิดโปรแกรม text editor ในการแก้ไขไฟล์ pg_hba.conf จากนั้นไปบริเวณท้ายไฟล์ในบรรทัดที่เป็น host all all all scram-sha-256 ให้เปลี่ยนคำว่า scram-sha-256 เป็น trust จากนั้นทำการบันทึกไฟล์
3.ทำการ restart service PostgreSQL ผ่านคำสั่ง
# pg_ctl restart
4.ทำการเข้า PostgreSQL อีกครั้งผ่านคำสั่ง
# psql -U postgres
5.จะเข้ามายัง shell ของ PostgreSQL โดยไม่ต้องป้อนรหัสผ่านจากนั้นให้ทำการเปลี่ยนรหัสผ่านผ่านคำสั่ง
postgres=# ALTER USER postgres WITH PASSWORD 'new_password';
เมื่อ new_password เป็นรหัสผ่านใหม่
6.นำค่า pg_hba.conf ที่สำรองไว้แทน pg_hba.conf ที่แก้ค่าไปจากนั้นทำการrestart PostgreSQL service แล้วทดสอบเข้า psql โดยใช้ รหัสผ่านที่ตั้งใหม่
This content originally appeared on DEV Community and was authored by iconnext