pgsql: функция генерации пароля
Задача: сбросить у всех пользователей пароль
Решение: воспользуемся функцией генерации пароля:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
DECLARE vPassword text; chars text; BEGIN vPassword := ''; chars := '@#$%*abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; WHILE((select COALESCE(substring(vPassword from '.*[a-z]+.*'),'')) = '' OR (select COALESCE(substring(vPassword from '.*[A-Z]+.*'),'')) = '' OR (select COALESCE(substring(vPassword from '.*[0-9]+.*'),'')) = '') LOOP vPassword := ''; FOR i IN 1..12 LOOP vPassword := vPassword || SUBSTRING(chars, ceil(random()*LENGTH(chars))::integer, 1); END LOOP; END LOOP; return vPassword; END; |