psql_rotate_password. Функциональность генерации случайного пароля#
В исходном дистрибутиве установлено по умолчанию: нет.
Связанные компоненты: отсутствуют.
Схема размещения:
ext.
Расширение psql_rotate_password добавляет функцию генерации случайного пароля удовлетворяющего парольной политике.
Функции расширения#
rotate_password. Генерация и установка постоянного пароля пользователя (включая ТУЗ)#
Функция генерации пароля rotate_password создает новый пароль для выбранного пользователя и:
возвращает его в качестве результата;
изменяет его в БД.
Входные параметры функции rotate_password:
(обязательный)
OIDили имя пользователя;(не обязательный) длина пароля. При отсутствии будет сгенерирован по минимальной длине пароля согласно парольным политикам (случайная длина до 5 символов).
Выходной параметр: сгенерированный пароль (строковый тип данных).
Пример запроса генерации пароля для пользователя User1:
SELECT * FROM rotate_password('User1');
Внимание
Внимание! По умолчанию права к функции не выставлены, то есть ее может вызвать суперпользователь, либо пользователь, получивший права от схемы или БД. Отдельных правил для настройки прав не существует.
Доработка#
Доработка не проводилась.
Ограничения#
Ограничения отсутствуют.
Установка и активация расширения#
Установка расширения может быть произведена в процессе развертывании СУБД Pangolin при использовании настроек по умолчанию (документ «Руководство по установке», раздел «Автоматизированная установка при помощи Ansible-скриптов»).
В случае ручной установки, создайте расширение psql_rotate_password командой:
CREATE EXTENSION psql_rotate_password schema ext;
Для активации расширения измените следующий параметр в конфигурационном файле postgersql.conf: rotate_password_enable = 'on' — включение функции генерации пароля.
После изменения параметра перечитайте конфигурацию:
SELECT pg_reload_conf();
Внимание
Внимание! Расширение устанавливается в рамках БД. Для всех баз данных, необходимым использование данной функции, рекомендуется установка расширения.
Настройка парамеров#
Настраиваемые параметры для генерации пароля:
rotate_password.num_rounds = ''— количество попыток генерации пароля:rotate_password.num_rounds = '20'rotate_password.valid_roles = ''— список пользователей (через запятую), для которых разрешена генерация пароля:rotate_password.valid_roles = 'user1, user2, user3'
При изменении параметров перечитайте конфигурацию:
SELECT pg_reload_conf();
Использование модуля#
Генерация пароля для нового пользователя при помощи функции rotate_password:
Установите значение („username“) параметра
rotate_password.valid_rolesв конфигурационном файле. Для применения изменений перечитайте конфигурацию:SELECT pg_reload_conf();Создайте политики для пользователя. В примере политика создается с явно заданными параметрами, в качестве значений параметров взяты значения по умолчанию, при необходимости вы можете их изменить.
SELECT * FROM set_role_policies('username', policy_enable(1::boolean), check_syntax(1::boolean), min_length(16), illegal_values(0::boolean), alpha_numeric(5), min_alpha_chars(1), min_special_chars(1), min_uppercase(1), min_lowercase(1), max_rpt_chars(2), use_password_strength_estimator(0::boolean), transport_password_life_time('3 days'));Пример ответа:
-[ RECORD 1 ]---------------------+------- roleid | username reuse_time | in_history | max_age | min_age | grace_login_limit | grace_login_time_limit | expire_warning | lockout | lockout_duration | max_failure | failure_count_interval | check_syntax | t min_length | 16 illegal_values | f alpha_numeric | 5 min_alpha_chars | 1 min_special_chars | 1 min_uppercase | 1 min_lowercase | 1 max_rpt_chars | 2 policy_enable | t track_login | max_inactivity | use_password_strength_estimator | f password_strength_estimator_score | custom_function | transport_password_life_time | 3 daysСгенерируйте пароль для пользователя:
SELECT * FROM rotate_password('username');Пример ответа:
rotate_password -------------------- x3<2BTf?ma3P119_fs (1 row)