PostgreSQL - Сложность пароля, включения passwordcheck
- Последнее обновление: 3 Ноября 2023 г.
- Просмотры: 219
- Автор: Админ

Коллеги всем привет.
В сегодняшней статье мы вам покажем как установить механизм проверки сложности пароля в 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';
Как видим плагин успешно борется с тем чтобы мы не могли создать роль со слабым паролем.
Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.