Pg hba conf нет записи для компьютера
Каждая запись обозначает тип соединения, диапазон IP-адресов клиента (если он соотносится с типом соединения), имя базы данных, имя пользователя, и способ аутентификации, который будет использован для соединения в соответствии с этими параметрами. Первая запись с соответствующим типом соединения, адресом клиента, указанной базой данных и именем пользователя применяется для аутентификации. Процедур « fall-through » или « backup » не предусмотрено: если выбрана запись и аутентификация не прошла, последующие записи не рассматриваются. Если же ни одна из записей не подошла, в доступе будет отказано.
Запись может быть сделана в одном из семи форматов:
Значения полей описаны ниже:
Управляет подключениями через Unix-сокеты. Без подобной записи подключения через Unix-сокеты невозможны. host
Управляет подключениями, устанавливаемыми по TCP/IP. Записи host соответствуют подключениям с SSL и без SSL .
Ошибка 1С «Сервер баз данных не обнаружен»
При работе с 1С в клиент-серверном варианте могут возникать ошибки, которые напрямую не связаны с 1С:Предприятием, а связаны непосредственно с сервером управления баз данных.
Одна из распространенных ошибок — «Сервер баз данных не обнаружен…».
Далее рассмотрим подробнее каждую ошибку.
ВАЖНО: пользователь «postgres» не прошёл проверку подлинности (Ident)
Пример полного текста ошибки:
Описание: Ошибка возникает при создании базы.
Решение:
Настроим проверку подлинности.
- Сконфигурируем доступ к серверу PostgreSQL в файле: pg_hba.conf:
Файл должен содержать только следующие строки (содержащие ip серверов 1С) (остальные удалим или пометим как комментарий):
Строк должно быть, соответственно, несколько, если серверов 1С несколько в кластере.
Последняя колонка указывает на метод авторизации.
Если пока теряетесь в настройках доступа. Для понимания, можно сначала открыть все, запустить сервер.
А после удачного старта сервера СУБД разбираться с настройками доступа.
Could not translate host name «NAME» to address: Temporary failure in name resolution
Пример полного текста ошибки:
Описание:
Ошибка может возникать как при создании базы, так и при запуске информационной базы.
Решение:
Настроим DNS-адресацию или пропишем адреса в файл hosts. Обратите внимание, что в данном случае проблема в том, что на сервере 1С нет информации о доменном имени сервера СУБД PostgreSQL. Подробнее о DNS — Настройка DNS-адресации для 1С сервера.
Примечание
Удалённое соединение по TCP/IP невозможно, если сервер запущен без определения соответствующих значений для параметра конфигурации listen_addresses, поскольку по умолчанию система принимает подключения по TCP/IP только для локального адреса замыкания localhost .
Управляет подключениями, устанавливаемыми по TCP/IP с применением шифрования SSL .
Чтобы использовать эту возможность, сервер изначально должен быть построен с поддержкой SSL . Более того, SSL должен быть включён на момент запуска сервера, для чего необходимо установить параметр конфигурации ssl (подробнее это описано в Разделе 17.9). hostnossl
Этот тип записей противоположен hostssl , ему соответствуют только подключения по TCP/IP без шифрования SSL . база
Определяет, каким именам баз данных соответствует эта запись. Значение all определяет, что подходят все базы данных. Значение sameuser определяет, что данная запись соответствует только, если имя запрашиваемой базы данных совпадает с именем запрашиваемого пользователя. Значение samerole определяет, что запрашиваемый пользователь должен быть членом роли с таким же именем, как и у запрашиваемой базы данных. ( samegroup - это устаревший, но допустимый вариант значения samerole .) Суперпользователи не становятся членами роли автоматически из-за samerole , а только если они являются явными членами роли, прямо или косвенно, и не только из-за того, что они суперпользователи. Значение replication показывает, что запись соответствует, если запрашивается подключение репликации (имейте в виду, что подключения репликации не определяют какую-то конкретную базу данных). В противном случае это имя определённой базы данных Postgres Pro . Несколько имён баз данных можно указать, разделяя их запятыми. Файл, содержащий имена баз данных, можно указать, поставив знак @ в начале его имени. пользователь
Указывает, какому имени (или именам) пользователя базы данных соответствует эта запись. Значение all показывает, что это подходит всем пользователям. В противном случае это либо имя конкретного пользователя базы данных, либо имя группы, в начале которого стоит знак + . (Напомним, что в Postgres Pro нет никакой разницы между пользователем и группой; знак + означает « совпадение любых ролей, которые прямо или косвенно являются членами роли » , тогда как имя без знака + является подходящим только для этой конкретной роли.) В связи с этим, суперпользователь рассматривается как член роли, только если он явно является членом этой роли, прямо или косвенно, а не только потому, что он является суперпользователем. Несколько имён пользователей можно указать, разделяя их запятыми. Файл, содержащий имена пользователей, можно указать, поставив знак @ в начале его имени. адрес
Указывает адрес (или адреса) клиентской машины, которым соответствует данная запись. Это поле может содержать или имя компьютера, или диапазон IP-адресов, или одно из нижеупомянутых ключевых слов.
Типичные примеры диапазонов адресов IPv4, указанных таким образом: 172.20.143.89/32 для одного компьютера, 172.20.143.0/24 для небольшой и 10.6.0.0/16 для крупной сети. Диапазон адресов IPv6 может выглядеть как ::1/128 для одного компьютера (это адрес замыкания IPv6) или как fe80::7a31:c1ff:0000:0000/96 для небольшой сети. 0.0.0.0/0 представляет все адреса IPv4, а ::0/0 — все адреса IPv6. Чтобы указать один компьютер, используйте длину маски 32 для IPv4 или 128 для IPv6. Опускать замыкающие нули в сетевом адресе нельзя.
Запись, сделанная в формате IPv4, подойдёт только для подключений по IPv4, а запись в формате IPv6 подойдёт только для подключений по IPv6, даже если представленный адрес находится в диапазоне IPv4-в-IPv6. Имейте в виду, что записи в формате IPv6 не будут приниматься, если системная библиотека С не поддерживает адреса IPv6.
Вы также можете прописать значение all , чтобы указать любой IP-адрес, samehost , чтобы указать любые IP-адреса данного сервера, или samenet , чтобы указать любой адрес любой подсети, к которой сервер подключён напрямую.
Если определено имя компьютера (всё, что не является диапазоном IP-адресов или специальным ключевым словом, воспринимается как имя компьютера), то оно сравнивается с результатом обратного преобразования IP-адреса клиента (например, обратного DNS-запроса, если используется DNS). При сравнении имён компьютеров регистр не учитывается. Если имена совпали, выполняется прямое преобразование имени (например, прямой DNS-запрос) для проверки, относится ли клиентский IP-адрес к адресам, соответствующим имени. Если двусторонняя проверка пройдена, запись считается соответствующей компьютеру. (В качестве имени узла в файле pg_hba.conf должно указываться то, что возвращается при преобразовании IP-адреса клиента в имя, иначе строка не будет соответствовать узлу. Некоторые базы данных имён позволяют связать с одним IP-адресом несколько имён узлов, но операционная система при попытке разрешить IP-адрес возвращает только одно имя.)
Когда в pg_hba.conf указываются имена узлов, следует добиться, чтобы разрешение имён выполнялось достаточно быстро. Для этого может быть полезен локальный кеш разрешения имён, например, nscd . Вы также можете включить конфигурационный параметр log_hostname , чтобы видеть в журналах имя компьютера клиента вместо IP-адреса.
Пользователи часто задаются вопросом, почему имена серверов обрабатываются таким сложным, на первый взгляд, способом, с разрешением двух имён, включая обратный запрос клиентского IP-адреса. Это усложняет процесс в случае, если обратная DNS-запись клиента не установлена или включает в себя нежелательное имя узла. Такой способ избран, в первую очередь, для повышения эффективности: в этом случае соединение требует максимум два запроса разрешения, один прямой и один обратный. Если есть проблема разрешения с каким-то адресом, то она остаётся проблемой этого клиента. Гипотетически, могла бы быть реализована возможность во время каждой попытки соединения выполнять только прямой запрос для разрешения каждого имени сервера, упомянутого в pg_hba.conf . Но если список имён велик, процесс был бы довольно медленным, а в случае наличия проблемы разрешения у одного имени сервера, это стало бы общей проблемой.
Также обратный запрос необходим для того, чтобы реализовать возможность соответствия суффиксов, поскольку для сопоставления с шаблоном требуется знать фактическое имя компьютера клиента.
Эти два поля могут быть использованы как альтернатива записи IP-адрес / длина-маски . Вместо того, чтобы указывать длину маски, в отдельном столбце указывается сама маска. Например, 255.0.0.0 представляет собой маску CIDR для IPv4 длиной 8 бит, а 255.255.255.255 представляет маску CIDR длиной 32 бита.
Эти поля применимы только к записям host , hostssl и hostnossl . метод-аутентификации
Указывает метод аутентификации, когда подключение соответствует этой записи. Варианты выбора приводятся ниже; подробности в Разделе 19.3.
Разрешает безусловное подключение. Этот метод позволяет тому, кто может подключиться к серверу с базой данных Postgres Pro , войти под любым желаемым пользователем Postgres Pro без введения пароля и без какой-либо другой аутентификации. За подробностями обратитесь к Подразделу 19.3.1. reject
Отклоняет подключение безусловно. Эта возможность полезна для « фильтрации » некоторых серверов группы, например, строка reject может отклонить попытку подключения одного компьютера, при этом следующая строка позволяет подключиться остальным компьютерам в той же сети. md5
Требует от клиента предоставить для аутентификации пароль, дважды хешированный алгоритмом MD5. За подробностями обратитесь к Подразделу 19.3.2. password
Требует для аутентификации введения клиентом незашифрованного пароля. Поскольку пароль посылается простым текстом через сеть, такой способ не стоит использовать, если сеть не вызывает доверия. За подробностями обратитесь к Подразделу 19.3.2. gss
Для аутентификации пользователя использует GSSAPI. Этот способ доступен только для подключений по TCP/IP. За подробностями обратитесь к Подразделу 19.3.3. sspi
Для аутентификации пользователя использует SSPI. Способ доступен только для Windows. За подробностями обратитесь к Подразделу 19.3.4. ident
Получает имя пользователя операционной системы клиента, связываясь с сервером Ident, и проверяет, соответствует ли оно имени пользователя базы данных. Аутентификация ident может использоваться только для подключений по TCP/IP. Для локальных подключений применяется аутентификация peer. За подробностями обратитесь к Подразделу 19.3.5. peer
Получает имя пользователя операционной системы клиента из операционной системы и проверяет, соответствует ли оно имени пользователя запрашиваемой базы данных. Доступно только для локальных подключений. За подробностями обратитесь к Подразделу 19.3.6. ldap
Проводит аутентификацию, используя сервер RADIUS. За подробностями обратитесь к Подразделу 19.3.8 cert
Проводит аутентификацию, используя клиентский сертификат SSL. За подробностями обратитесь к Подразделу 19.3.9 pam
Проводит аутентификацию, используя службу подключаемых модулей аутентификации (PAM), предоставляемую операционной системой. За подробностями обратитесь к Подразделу 19.3.10. bsd
Проводит аутентификацию, используя службу аутентификации BSD, предоставляемую операционной системой. За подробностями обратитесь к Подразделу 19.3.11.
После поля метод-аутентификации может идти поле (поля) вида имя = значение , определяющее параметры метода аутентификации. Подробнее о параметрах, доступных для различных методов аутентификации, рассказывается ниже.
Помимо описанных далее параметров, относящихся к различным методам, есть один общий параметр аутентификации clientcert , который можно задать в любой записи hostssl . Если он равен 1 , клиент должен представить подходящий (доверенный) сертификат SSL, в дополнение к другим требованиям метода проверки подлинности.
Поскольку записи файла pg_hba.conf рассматриваются последовательно для каждого подключения, порядок записей имеет большое значение. Обычно более ранние записи определяют чёткие критерии для соответствия параметров подключения, но для методов аутентификации допускают послабления. Напротив, записи более поздние смягчают требования к соответствию параметров подключения, но усиливают их в отношении методов аутентификации. Например, некто желает использовать trust аутентификацию для локального подключения по TCP/IP, но при этом запрашивать пароль для удалённых подключений по TCP/IP. В этом случае запись, устанавливающая аутентификацию trust для подключения адреса 127.0.0.1, должна предшествовать записи, определяющей аутентификацию по паролю для более широкого диапазона клиентских IP-адресов.
Файл pg_hba.conf прочитывается при запуске системы, а также в тот момент, когда основной сервер получает сигнал SIGHUP . Если вы редактируете файл во время работы системы, необходимо послать сигнал процессу postmaster (используя pg_ctl reload , вызвав SQL-функцию pg_reload_conf() или выполнив kill -HUP ), чтобы он прочел обновлённый файл.
Is the server running on host and accepting TCP/IP connections on port 5432?
Пример полного текста ошибки:
Сервер баз данных не обнаружен could not connect to server : No rout to host Is the server running on host and accepting TCP / IP connections on port 5432 ?
Описание:
Проблема может возникать как при создании информационной базы из консоли администрирования 1С: Предприятия, так и при ее запуске в процессе эксплуатации уже существующей базы данных.
Решение:
В данном случае необходимо понимать, что рабочего процесса:
Либо нет;
Либо клиент(в нашем случае сервер 1С) его не «видит» по ряду причин:
— Отсутствие доступа;
— Обращение по другому адресу.
1. Первоначально, конечно, проверим, есть ли на сервере СУБД PostgreSQL в запущенных процессах процесс postmaster/postgres (в зависимости от версии PostgreSQL) на порту 5432.
ВАЖНО: в pg_hba.conf нет записи для компьютера «», пользователя «usr1cv8», базы «template»
Пример полного текста ошибки:
Сервер баз данных не обнаружен ВАЖНО: в pg_hba.conf нет записи для компьютера «», пользователя «usr1cv8», базы «template».
Описание ошибки:
Ошибка связана с отсутствием прописанного доступа к базе данных в файле pg_hba.conf
Решение:
Добавим запись в файл pg_hba.conf.
Приведем пример содержания файла, который открывает доступ:
Строк должно быть, соответственно, несколько, если серверов 1С несколько в кластере.
Примечание
Удалённое соединение по TCP/IP невозможно, если сервер запущен без определения соответствующих значений для параметра конфигурации listen_addresses, поскольку по умолчанию система принимает подключения по TCP/IP только для локального адреса замыкания localhost .
Управляет подключениями, устанавливаемыми по TCP/IP с применением шифрования SSL .
Чтобы использовать эту возможность, сервер изначально должен быть построен с поддержкой SSL . Более того, SSL должен быть включён на момент запуска сервера, для чего необходимо установить параметр конфигурации ssl (подробнее это описано в Разделе 17.9). hostnossl
Этот тип записей противоположен hostssl , ему соответствуют только подключения по TCP/IP без шифрования SSL . база
Определяет, каким именам баз данных соответствует эта запись. Значение all определяет, что подходят все базы данных. Значение sameuser определяет, что данная запись соответствует только, если имя запрашиваемой базы данных совпадает с именем запрашиваемого пользователя. Значение samerole определяет, что запрашиваемый пользователь должен быть членом роли с таким же именем, как и у запрашиваемой базы данных. ( samegroup - это устаревший, но допустимый вариант значения samerole .) Суперпользователи не становятся членами роли автоматически из-за samerole , а только если они являются явными членами роли, прямо или косвенно, и не только из-за того, что они суперпользователи. Значение replication показывает, что запись соответствует, если запрашивается подключение репликации (имейте в виду, что подключения репликации не определяют какую-то конкретную базу данных). В противном случае это имя определённой базы данных Postgres Pro . Несколько имён баз данных можно указать, разделяя их запятыми. Файл, содержащий имена баз данных, можно указать, поставив знак @ в начале его имени. пользователь
Указывает, какому имени (или именам) пользователя базы данных соответствует эта запись. Значение all показывает, что это подходит всем пользователям. В противном случае это либо имя конкретного пользователя базы данных, либо имя группы, в начале которого стоит знак + . (Напомним, что в Postgres Pro нет никакой разницы между пользователем и группой; знак + означает « совпадение любых ролей, которые прямо или косвенно являются членами роли » , тогда как имя без знака + является подходящим только для этой конкретной роли.) В связи с этим, суперпользователь рассматривается как член роли, только если он явно является членом этой роли, прямо или косвенно, а не только потому, что он является суперпользователем. Несколько имён пользователей можно указать, разделяя их запятыми. Файл, содержащий имена пользователей, можно указать, поставив знак @ в начале его имени. адрес
Указывает адрес (или адреса) клиентской машины, которым соответствует данная запись. Это поле может содержать или имя компьютера, или диапазон IP-адресов, или одно из нижеупомянутых ключевых слов.
Типичные примеры диапазонов адресов IPv4, указанных таким образом: 172.20.143.89/32 для одного компьютера, 172.20.143.0/24 для небольшой и 10.6.0.0/16 для крупной сети. Диапазон адресов IPv6 может выглядеть как ::1/128 для одного компьютера (это адрес замыкания IPv6) или как fe80::7a31:c1ff:0000:0000/96 для небольшой сети. 0.0.0.0/0 представляет все адреса IPv4, а ::0/0 — все адреса IPv6. Чтобы указать один компьютер, используйте длину маски 32 для IPv4 или 128 для IPv6. Опускать замыкающие нули в сетевом адресе нельзя.
Запись, сделанная в формате IPv4, подойдёт только для подключений по IPv4, а запись в формате IPv6 подойдёт только для подключений по IPv6, даже если представленный адрес находится в диапазоне IPv4-в-IPv6. Имейте в виду, что записи в формате IPv6 не будут приниматься, если системная библиотека С не поддерживает адреса IPv6.
Вы также можете прописать значение all , чтобы указать любой IP-адрес, samehost , чтобы указать любые IP-адреса данного сервера, или samenet , чтобы указать любой адрес любой подсети, к которой сервер подключён напрямую.
Если определено имя компьютера (всё, что не является диапазоном IP-адресов или специальным ключевым словом, воспринимается как имя компьютера), то оно сравнивается с результатом обратного преобразования IP-адреса клиента (например, обратного DNS-запроса, если используется DNS). При сравнении имён компьютеров регистр не учитывается. Если имена совпали, выполняется прямое преобразование имени (например, прямой DNS-запрос) для проверки, относится ли клиентский IP-адрес к адресам, соответствующим имени. Если двусторонняя проверка пройдена, запись считается соответствующей компьютеру. (В качестве имени узла в файле pg_hba.conf должно указываться то, что возвращается при преобразовании IP-адреса клиента в имя, иначе строка не будет соответствовать узлу. Некоторые базы данных имён позволяют связать с одним IP-адресом несколько имён узлов, но операционная система при попытке разрешить IP-адрес возвращает только одно имя.)
Когда в pg_hba.conf указываются имена узлов, следует добиться, чтобы разрешение имён выполнялось достаточно быстро. Для этого может быть полезен локальный кеш разрешения имён, например, nscd . Вы также можете включить конфигурационный параметр log_hostname , чтобы видеть в журналах имя компьютера клиента вместо IP-адреса.
Пользователи часто задаются вопросом, почему имена серверов обрабатываются таким сложным, на первый взгляд, способом, с разрешением двух имён, включая обратный запрос клиентского IP-адреса. Это усложняет процесс в случае, если обратная DNS-запись клиента не установлена или включает в себя нежелательное имя узла. Такой способ избран, в первую очередь, для повышения эффективности: в этом случае соединение требует максимум два запроса разрешения, один прямой и один обратный. Если есть проблема разрешения с каким-то адресом, то она остаётся проблемой этого клиента. Гипотетически, могла бы быть реализована возможность во время каждой попытки соединения выполнять только прямой запрос для разрешения каждого имени сервера, упомянутого в pg_hba.conf . Но если список имён велик, процесс был бы довольно медленным, а в случае наличия проблемы разрешения у одного имени сервера, это стало бы общей проблемой.
Также обратный запрос необходим для того, чтобы реализовать возможность соответствия суффиксов, поскольку для сопоставления с шаблоном требуется знать фактическое имя компьютера клиента.
Эти два поля могут быть использованы как альтернатива записи IP-адрес / длина-маски . Вместо того, чтобы указывать длину маски, в отдельном столбце указывается сама маска. Например, 255.0.0.0 представляет собой маску CIDR для IPv4 длиной 8 бит, а 255.255.255.255 представляет маску CIDR длиной 32 бита.
Эти поля применимы только к записям host , hostssl и hostnossl . метод-аутентификации
Указывает метод аутентификации, когда подключение соответствует этой записи. Варианты выбора приводятся ниже; подробности в Разделе 19.3.
Разрешает безусловное подключение. Этот метод позволяет тому, кто может подключиться к серверу с базой данных Postgres Pro , войти под любым желаемым пользователем Postgres Pro без введения пароля и без какой-либо другой аутентификации. За подробностями обратитесь к Подразделу 19.3.1. reject
Отклоняет подключение безусловно. Эта возможность полезна для « фильтрации » некоторых серверов группы, например, строка reject может отклонить попытку подключения одного компьютера, при этом следующая строка позволяет подключиться остальным компьютерам в той же сети. md5
Требует от клиента предоставить для аутентификации пароль, дважды хешированный алгоритмом MD5. За подробностями обратитесь к Подразделу 19.3.2. password
Требует для аутентификации введения клиентом незашифрованного пароля. Поскольку пароль посылается простым текстом через сеть, такой способ не стоит использовать, если сеть не вызывает доверия. За подробностями обратитесь к Подразделу 19.3.2. gss
Для аутентификации пользователя использует GSSAPI. Этот способ доступен только для подключений по TCP/IP. За подробностями обратитесь к Подразделу 19.3.3. sspi
Для аутентификации пользователя использует SSPI. Способ доступен только для Windows. За подробностями обратитесь к Подразделу 19.3.4. ident
Получает имя пользователя операционной системы клиента, связываясь с сервером Ident, и проверяет, соответствует ли оно имени пользователя базы данных. Аутентификация ident может использоваться только для подключений по TCP/IP. Для локальных подключений применяется аутентификация peer. За подробностями обратитесь к Подразделу 19.3.5. peer
Получает имя пользователя операционной системы клиента из операционной системы и проверяет, соответствует ли оно имени пользователя запрашиваемой базы данных. Доступно только для локальных подключений. За подробностями обратитесь к Подразделу 19.3.6. ldap
Проводит аутентификацию, используя сервер RADIUS. За подробностями обратитесь к Подразделу 19.3.8 cert
Проводит аутентификацию, используя клиентский сертификат SSL. За подробностями обратитесь к Подразделу 19.3.9 pam
Проводит аутентификацию, используя службу подключаемых модулей аутентификации (PAM), предоставляемую операционной системой. За подробностями обратитесь к Подразделу 19.3.10. bsd
Проводит аутентификацию, используя службу аутентификации BSD, предоставляемую операционной системой. За подробностями обратитесь к Подразделу 19.3.11.
После поля метод-аутентификации может идти поле (поля) вида имя = значение , определяющее параметры метода аутентификации. Подробнее о параметрах, доступных для различных методов аутентификации, рассказывается ниже.
Помимо описанных далее параметров, относящихся к различным методам, есть один общий параметр аутентификации clientcert , который можно задать в любой записи hostssl . Если он равен 1 , клиент должен представить подходящий (доверенный) сертификат SSL, в дополнение к другим требованиям метода проверки подлинности.
Поскольку записи файла pg_hba.conf рассматриваются последовательно для каждого подключения, порядок записей имеет большое значение. Обычно более ранние записи определяют чёткие критерии для соответствия параметров подключения, но для методов аутентификации допускают послабления. Напротив, записи более поздние смягчают требования к соответствию параметров подключения, но усиливают их в отношении методов аутентификации. Например, некто желает использовать trust аутентификацию для локального подключения по TCP/IP, но при этом запрашивать пароль для удалённых подключений по TCP/IP. В этом случае запись, устанавливающая аутентификацию trust для подключения адреса 127.0.0.1, должна предшествовать записи, определяющей аутентификацию по паролю для более широкого диапазона клиентских IP-адресов.
Файл pg_hba.conf прочитывается при запуске системы, а также в тот момент, когда основной сервер получает сигнал SIGHUP . Если вы редактируете файл во время работы системы, необходимо послать сигнал процессу postmaster (используя pg_ctl reload , вызвав SQL-функцию pg_reload_conf() или выполнив kill -HUP ), чтобы он прочел обновлённый файл.
Подсказка
Чтобы подключиться к конкретной базе данных, пользователь не только должен пройти все проверки файла pg_hba.conf , но должен иметь привилегию CONNECT для подключения к базе данных. Если вы хотите ограничить доступ к базам данных для определённых пользователей, проще предоставить/отозвать привилегию CONNECT , нежели устанавливать правила в записях файла pg_hba.conf .
Примеры записей файла pg_hba.conf показаны в Примере 19.1. Обратитесь к следующему разделу за более подробной информацией по методам аутентификации.
But another consideration is your postgresql port(5432) is very open to password attacks with hackers (maybe they can brute force the password). You can change your postgresql port 5432 to '33333' or another value, so they can't know this configuration.
I tried to do it like "host all all * md5" . But it didn't worked. But I got succeeded in your way. Thanks a lot.
In your pg_hba.conf file, I see some incorrect and confusing lines:
I suspect that if you md5'd the password, this might work if you trim the lines. To get the md5 you can use perl or the following shell script:
So then your connect line would like something like:
Your postgres server configuration seems correct That should grant access from the client to the postgres server. So that leads me to believe the username / password is whats failing.
Test this by creating a specific user for that database
Then adjust your perl script to use the newly created user
The fact that he got an error about a missing pg_hba.conf line means that it hasn't gotten to checking the password yet.
To resolve this problem, you can try this.
first, you have found out your pg_hba.conf by:
cd /etc/postgresql/9.5/main from your root directory
and open file using
then add this line:
to your pg_hba.conf and then restart by using the command:
Hello 'local' is relevant for unix socket connections. Why do you think it should help with the network problem? (I have this line in my pg_hba.conf, too, and have the same problem, too, plus my postgresql server does not listen on unix socket.)
To resolved this problem, you can try this.
first you have find out your pg_hba.conf and write :
after that restart pg server:
Add the following in line in pg_hba.conf
hostnossl all all 0.0.0.0/0 trust
And then restart the Service.
If you are getting an error like the one below:
then add an entry like the following, with your mac address.
My problem was related to the IPV6 address, so, adding specifically my IPV6 address solved the problem. Thanks Shiddu
For those who are getting this error in DBeaver the solution was found here at line:
@lcustodio on the SSL page, set SSL mode: require and either leave the SSL Factory blank or use the org.postgresql.ssl.NonValidatingFactory
Under Network -> SSL tab I checked the Use SLL checkbox and set Advance -> SSL Mode = require and it now works.
I faced the same issue. My db was on cloud
ERROR: no pg_hba.conf entry for host ". ", user ". ", database ". ", SSL off
I add this configuration to resolve this,
SSL parameter is the key telling DB to always use SSL for making connections.
после Google это говорит, что мне просто нужно добавить запись в файле pg_hba.conf для этого конкретного пользователя. это мой файл pg_hba.conf.
но после этого ошибка все еще сохраняется. Я перезагружал свой сервер XAMPP несколько раз, но никаких изменений не появляется. заранее спасибо
Добавьте или отредактируйте следующую строку в вашем postgresql.conf :
Добавьте следующую строку в качестве первой строки pg_hba.conf . Это позволяет доступ ко всем базам данных для всех пользователей с зашифрованным паролем:
Перезапустите Postgresql после добавления этого с помощью service postgresql restart или эквивалентной команды для вашей установки.
Обратите внимание, что для того, чтобы это работало, для пользователя должен быть установлен пароль : sudo -u psql postgres затем \password в появившемся запросе sql появится запрос на его установку.
Если вы хотите немного дополнительной защиты, ограничивающей подключения к частным доменам (например, внутри офиса, а не к остальной части Интернета), вы можете изменить первый номер на 10, 172 или 192 в соответствии с вашей сетью: например, 172.0. 0.0 / 0 вместо 0.0.0.0/0
Это решение работает для IPv4 / IPv6
а затем перезапустите сервис postgresql
Я решил это следующим образом:
Добавлена строка, как показано ниже pg_hba.conf :
и это было изменено в postgresql.conf , как показано:
У меня этот экземпляр работал на Centos 7.3 и Postgres 9.5 на виртуальной машине в Azure , учитывая, что это был POC (подтверждение концепции), который вы не захотите подключать без SSL в вашей реальной среде разработки.
Для подключения к экземпляру я использовал pgAdmin 4 на macOS Sierra .
Не только SSL . для всего, что не является доказательством концепции и доступно для сети, вы не будете доверять соединениям, вам потребуется некоторая аутентификация .
Fresh Postgres 9.5 установить, Ubuntu.
Ключ был локальным типом соединения, так как psql использует соединение с сокетом домена.
У меня есть база данных postgres на одном сервере, и мне нужен доступ к ней с другого сервера.
Мне нужно отредактировать файл pg_hba.conf, но теперь я понимаю, каковы действия по редактированию этого файла. Сервер Centos
Мне нужно добавить следующую строку в файл
Я нашел это в var/lib/pgsql/data/
Теперь, в принципе, я не уверен, как правильно сделать это
Сначала возьмите резервную копию данного pg_hba.conf
Таким образом, у вас есть готовая старая версия, если вы облажаетесь. Приятной особенностью архива tar является то, что он сохраняет права доступа и каталоги. Так что когда pg_hba.conf не работает до неузнаваемости. Вы можете:
Это восстановит резервную копию pg_hba.conf из архива, который вы создали ранее.
Что касается фактической вставки строки:
(ПРИМЕЧАНИЕ: команда отредактирована. Спасибо bortzmeyer!)
Должен сделать это. Обратите внимание, что это просто добавляет строку в pg_hba.conf. Если вам когда-либо понадобится изменить его, вы должны использовать настоящий редактор. Как и vi. Эта кривая обучения может быть немного крутой, но после того, как вы изучите хотя бы основы, вы должны быть совершенно безопасны в большинстве любых unix-сред, с которыми вы сталкиваетесь.
Теперь, когда я вернулся на путь, вам следует попытаться перезапустить базу данных postgresql. Я считаю, что на машине Centos это делается:
или вы можете просто перезагрузить конфигурацию без перезагрузки:
Теперь у вас должна быть возможность доступа к базе данных Centos-machines postrgresql с 10.0.2.12.
Sudo в последней команде не будет работать, так как привилегированная операция выполняется перенаправлением, которое обрабатывается оболочкой, а не программой, которую вы запускаете с помощью sudo (в данном случае echo).
Хорошая точка зрения! Он должен быть записан как sudo "echo" host all all 10.0.2.12 255.255.255.255 trust '>> /var/lib/pgsql/data/pg_hba.conf "
Идеальным способом было бы поставить его под контроль версий в месте администратора и развернуть его после изменения через SSH и т. Д.
Расположение файла pg_hba.conf по умолчанию немного отличается в 9.4: /var/lib/pgsql/9.4/data/pg_hba.conf.
Не забудьте отредактировать postgresql.conf и изменить / добавить строку
Postgresql по умолчанию прослушивает localhost
Разве ваш пример list_addresses не слишком разрешающий? Это зияющая дыра в безопасности, если сервер работает на нескольких IP-адресах, то есть общедоступных, внутренних, VPN и т. Д.
Читайте также: