Как начать GSSAPI в Potgresql - PullRequest
2 голосов
/ 13 марта 2020

Я установил postgres в REDHAT 7. Затем я установил python 3.6. Я создал виртуальную среду. Также я создал таблицу в postgres. Затем я выполнил этот скрипт python и получил ошибку.

import psycopg2
conn = psycopg2.connect("dbname=postgres user=postgres host=localhost password=postgres")

Ошибка:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/data/scripts/san-automation/lib/python3.7/site-packages/psycopg2/__init__.py", line 126, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: could not initiate GSSAPI security context: Unspecified GSS failure.  Minor code may provide more information
could not initiate GSSAPI security context: Server not found in Kerberos database
FATAL:  Ident authentication failed for user "postgres"

cat /var/lib/pgsql/12/data/pg_hba.conf

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            ident
host    replication     all             ::1/128                 ident

1 Ответ

1 голос
/ 14 марта 2020

Похоже, что он превентивно загружает ваши файлы конфигурации gss / kerberos (даже если он не собирается их использовать) и находит в них то, что ему не нравится. Но это похоже на предупреждение. Настоящая ошибка - последняя строка:

FATAL: аутентификация идентификатора не удалась для пользователя "postgres"

, и я не думаю, что это как-то связано с GSS. Загляните в файл журнала сервера, чтобы узнать, почему не удалось получить идентификатор.

Если pg_hba.conf, который вы показываете, является действующим, то в вашей системе локальный хост должен преобразовываться в :: 1, а не в 127.0.0.1. То есть он использует ipv6, а не ipv4.

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