مسعود سلطانی راد
مسعود سلطانی راد
خواندن ۱ دقیقه·۲ سال پیش

بازیابی کلمه عبور کاربر Postgres در پایگاه داده Postgresql


مقدمه :

برخی شرایطی پیش می آید که کلمه عبور (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 می باشد.

خدمات پایگاه داده پستگرسنگهداری postgresqlپشتیبانی postgresqlمسعود سلطانی رادمشاوره postgresql
چند سالی هست در حوزه داده ها ( نگهداری و تحلیل آنها) فعالیت دارم و همیشه سعی کردم آموخته هایم رو به اشتراک بگذارم soltanirad@artarad.ir www.artarad.ir
شاید از این پست‌ها خوشتان بیاید