مقدمه :

برخی شرایطی پیش می آید که کلمه عبور (password ) کاربر Postgres را فراموش کرده ایم و احتیاج به بازیابی آن داریم. در این مستند در خصوص راهکاریی که در این مورد وجود دارد صحبت خواهیم کرد.

اجرای عملیات بازیابی :

برای این کار باید ابتدا محل فایل pg_hba.conf  رو پیدا کنیم. این فایل در مسیر data directroy قرار گرفته. اگر این مسیر را نمی دانید یکی از راه های پیدا کردنش استقاده از دستور pg_lsclusters  می باشد که خروجی مشابه زیر دارد.

Ver Cluster Port Status Owner    Data directory              Log file

12  main    5432 online postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log

همانطور که مشاهده می کنید مسیر data directory این مسیر می باشد:

/var/lib/postgresql/12/main

ابتدا یک فایل پشتیبان از این فایل می گیریم و بعد محتوی فایل اصلی را ویرایش می کنیم.همه Method های اعتبارسنجی را از Md5 به Trust تغییر میدیم و سپس یکبار سرویس ها رو Restart می کنیم.

برای Restart یا از pg_ctl استفاده کنید یا از دستور سیستم عاملی systemctl

Pg_ctl restart -D &PGDATA

Or

Systemctl restart postgresql.service

با این کار به کاربر postgres اجازه دادیم بدون کنترل کردن کلمه عبورش ( در سرور) وارد پایگاه داده بشود. حالا با ابزار psql  با کاربر postgres وارد پایگاه داده می شویم و کلمه عبور را تغییر میدهیم و در ادامه همه تنظمیات فایل pg_hba را به حالت قبل برمی گردانیم و دوباره سرویس را restart   می کنیم
با دستور زیر کلمه عبور را تغییر می دهیم.

ALTER USER postgres WITH PASSWORD ‘new_password’;

در ضمن hba مخفف host-based authentication می باشد.

معرفی پایگاه داده پستگرس

برای دریافت خدمات پایگاه داده پستگرس با ما در ارتباط باشید.