DEV Community

การ reset password ของผู้ใช้งาน postgres ในกรณีที่ลืม pasword

ในตอนติดตั้ระบบฐานข้อมูล 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
Enter fullscreen mode Exit fullscreen mode

2.เปิดโปรแกรม text editor ในการแก้ไขไฟล์ pg_hba.conf จากนั้นไปบริเวณท้ายไฟล์ในบรรทัดที่เป็น host all all all scram-sha-256 ให้เปลี่ยนคำว่า scram-sha-256 เป็น trust จากนั้นทำการบันทึกไฟล์
Image description

3.ทำการ restart service PostgreSQL ผ่านคำสั่ง

# pg_ctl restart
Enter fullscreen mode Exit fullscreen mode

4.ทำการเข้า PostgreSQL อีกครั้งผ่านคำสั่ง

# psql -U postgres
Enter fullscreen mode Exit fullscreen mode

5.จะเข้ามายัง shell ของ PostgreSQL โดยไม่ต้องป้อนรหัสผ่านจากนั้นให้ทำการเปลี่ยนรหัสผ่านผ่านคำสั่ง

postgres=# ALTER USER postgres WITH PASSWORD 'new_password';
Enter fullscreen mode Exit fullscreen mode

เมื่อ new_password เป็นรหัสผ่านใหม่
6.นำค่า pg_hba.conf ที่สำรองไว้แทน pg_hba.conf ที่แก้ค่าไปจากนั้นทำการrestart PostgreSQL service แล้วทดสอบเข้า psql โดยใช้ รหัสผ่านที่ตั้งใหม่

Top comments (0)