Почему psycopg2 может подключиться к моей базе данных, а я не могу - PullRequest
2 голосов
/ 21 ноября 2011

Я пытаюсь создать дамп базы данных моего сайта Django, но собственная команда dumpdata Django довольно ужасна для больших баз данных, поэтому я хочу использовать pg_dump.

Это работает:

python
>>> import psycopg2
>>> psycopg2.connect(database='blah',user='blah',password='blah',host='localhost')

Это не работает

bash
# psql -U blah blah
psql: FATAL:  Ident authentication failed for user "blah"
# pg_dump -U blah blah
pg_dump: [archiver (db)] connection to database "blah" failed: FATAL:  Ident authentication failed for user "blah"

Мои поиски показывают, что, возможно, мне нужно изменить "идент" на "пароль" в /etc/postgresql/9.0/main/pg_hba.conf.Это разумная вещь, чтобы изменить?Почему я не могу войти в pg_dump, используя любой метод, который уже отлично работает для python psycopg2?

1 Ответ

5 голосов
/ 21 ноября 2011

Если вы введете -h localhost в командной строке psql / pg_dump, он будет подключаться через сокет TCP вместо сокета unix.У них могут быть разные методы аутентификации, определенные в pg_hba.conf.Так как «Authe Authentication» применяется только к Unix-сокетам, то, безусловно, именно так и происходит.

Изменение pg_hba.conf для использования «md5» вместо «идент» для «локальных» строк (Unix-сокетов) является разумнымчтобы придерживаться паролей, определенных в учетных записях пользователей postgresql, вместо того, чтобы ожидать, что имя пользователя unix идентифицирует имя пользователя postgresql.

В конфигурации Debian по умолчанию строка для аутентификации как "postgres" вставляется отдельно, поэтомучто вы можете изменить значение по умолчанию для других пользователей на md5 или доверие по своему усмотрению, оставив только одну защищенную учетную запись.Istr некоторые шепотки от пользователей Postgres о том, что по умолчанию в Debian / Ubuntu аутентификация по «идентификатору» более запутанная, чем полезная.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...