PostgreSQL - Складність пароля, включення passwordcheck
- Останнє оновлення: 3 Листопада 2023 р.
- Перегляди: 43
- Автор: Адмін

Колеги всім привіт.
У сьогоднішній статті ми вам покажемо як встановити механізм перевірки складності пароля в PostgreSQL при створенні нового користувача або ролі в базі даних або зміни існуючого користувача або ролі.
За перевірку складності пароля в PostgreSQL відповідає плагін passwordcheck. Плагін перевірятиме пароль щоразу, коли створюється нова роль базі даних чи користувач, або коли змінюється пароль вже існуючої ролі чи користувача.
Насамперед потрібно перевірити увімкнений у вас плагін passwordcheck в PostgreSQL чи ні, для цього в консолі бази даних виконуємо простий запит:
sql> SHOW shared_preload_libraries;
У нашому випадку нам повернулося порожнє значення, а це означає, що плагін passwordcheck у нас вимкнений.
Щоб увімкнути плагін, потрібно в основному конфігураційному файлі postgresql.conf знайти параметр shared_preload_libraries і додати значення $libdir/passwordcheck .
Після додавання параметра обов'язково перезапустіть базу даних, інакше плагін не буде активним.
Якщо після перезапуску бази даних у нас виникне помилка при старті, і СУБД покаже помилку з приблизним текстом, що вона не знає такого плагіна і не може його підключити, то ви коли збирали вашу СУБД, то ви не вказали які розширення ви хочете встановити разом із СУБД.
Вам потрібно до зібрати вашу СУБД за допомогою утиліти configure яка поставляється разом із СУБД.
Якщо у вас все вийшло і ваша база даних успішно запустилася після додавання параметра, то тепер знову перевіримо стану змінної shared_preload_libraries в консолі.
sql> SHOW shared_preload_libraries;
Як бачимо, в результаті плагін успішно був активований.
Тепер настала черга перевірити як відпрацьовуватиме плагін якщо ми спробуємо створити роль із надто простим паролем.
sql> CREATE ROLE test WITH LOGIN PASSWORD '123';
sql> CREATE ROLE test WITH LOGIN PASSWORD 'test';
sql> CREATE ROLE test WITH LOGIN PASSWORD 'postgres';
sql> CREATE ROLE test WITH LOGIN PASSWORD 'postgresql';
sql> CREATE ROLE test WITH LOGIN PASSWORD 'postgresqlqqqkjhkh';
Як бачимо плагін успішно бореться з тим, щоб ми не могли створити роль зі слабким паролем.
Дякую всім, я сподіваюся що вам моя стаття хоч чимось допомогла.