Я попытался сгенерировать пароль для postgres
с помощью hashlib
из Python.
>>> import hashlib
>>> hashlib.md5("psql123").hexdigest()
2636d1ddc54901f98d011ffe050c0eb7
Но postgresql требует префикса md5
, поэтому
sudo -u postgres psql
ALTER USER postgres PASSWORD 'md52636d1ddc54901f98d011ffe050c0eb7';
Однако аутентификация завершится с ошибкой, если я использую psql123
в качестве пароля.
Если я использую passlib
, я в порядке. См. http://pythonhosted.org/passlib/lib/passlib.hash.postgres_md5.html
Выполнение следующего с помощью psql123
в качестве пароля в порядке.
ALTER USER postgres PASSWORD 'md556074e7318bd4cee558faab0678a2fad';
Я не понимаю, о чем предупреждает в passlib
. Можно ли использовать этот хэш для пользователя postgres
? Кроме того, где в документе говорится, что username
должен быть частью ввода?
Я предполагаю, что поэтому postgres
не может понять результат из hashlib
. Как пользователь LDAP, я могу сгенерировать пароль в оболочке. У Postgres есть встроенная команда для этого? Имеет ли это psycopg2
? Похоже, что нет.