Як налаштувати PostgreSQL для прийому всіх вхідних з'єднань


106

У мене є база даних PostgreSQL, яку я хотів би налаштувати для прийому всіх вхідних з'єднань незалежно від IP-адреси джерела. Як це можна налаштувати у файлі pg_hba.conf? Я використовую postgreSQL версії 8.4.

Відповіді:


216

Просто використовуйте 0.0.0.0/0.

host    all             all             0.0.0.0/0            md5

Переконайтеся , що listen_addressesв систему postgresql.conf(або ALTER SYSTEM SET) дозволяє вхідні з'єднання на всіх доступних інтерфейсів IP.

listen_addresses = '*'

Після змін вам доведеться перезавантажити конфігурацію. Один із способів зробити це - виконати це SELECTяк суперпользователь.

SELECT pg_reload_conf();

чи справді це працює з типом md5? Я подумав, що потрібно буде використовувати тип trust...
Dan LaRocque

5
"довіра" дозволяє всім користувачам підключатися без пароля. Це я не використовував би, пароль - це мінімальний мінімум, який ви завжди повинні використовувати. Навіть на власному комп’ютері.
Френк Хайкенс

1
ах, я читав питання по-різному - я думав, що він мав на увазі беззастережно приймати з'єднання від усіх клієнтів (можливо, для деяких неважливих тестових панелей). я бачу, що ти зараз отримуєш.
Dan LaRocque

6
ПРИМІТКА . Якщо у вашій мережі є IPv6, ви повинні використовувати її ::/0, на відміну від 0.0.0.0/0модифікації файлу pg_hba.conf.
Арон Бойетт

2
Переконайтеся, що у вас postgresє надійний пароль: sudo -u postgres psql, \password.
Adobe

47

0.0.0.0/0 для всіх IPv4-адрес

::0/0 для всіх IPv6-адрес

all щоб відповідати будь-якій IP-адресі

samehost щоб відповідати будь-якій із власних IP-адрес сервера

samenet щоб відповідати будь-якій адресі будь-якої підмережі, до якої безпосередньо підключений сервер.

напр

host    all             all             0.0.0.0/0            md5

6

Крім вищезгаданих чудових відповідей, якщо ви хочете, щоб якийсь діапазон IP був авторизований, ви можете редагувати /var/lib/pgsql/{VERSION}/dataфайл і помістити щось на кшталт

host all all 172.0.0.0/8 trust

Він приймає вхідні з'єднання з будь-якого хоста вищевказаного діапазону. Джерело: http://www.linuxtopia.org/online_books/database_guides/Practical_PostgreSQL_database/c15679_002.htm


Дякуємо за підказку про асортимент!
leole

0

Конфігуруйте всі файли з postgres 12 на центсі:

крок 1: пошук та редагування файлу

sudo vi /var/lib/pgsql/12/data/pg_hba.conf

натисніть "i" і в рядку IPv4 змінити

host    all             all             0.0.0.0/0            md5

крок 2: пошук і редагування файлу postgresql.conf

sudo vi /var/lib/pgsql/12/data/postgresql.conf

додати останній рядок: liste_addresses = '*': wq! (зберегти файл) - крок 3: перезапуск

systemctl restart postgresql-12.service

-6

Додайте цей рядок до pg_hba.conf папки postgres

host    all    all    all    trust

"довіра" дозволяє всім користувачам підключатися без пароля.


Чи можете ви додати коментар до коду? Куди його поставити і як це працює?
Алістра

4
У той час як цей фрагмент коду вітається, і може забезпечити деяку допомогу, було б значно покращено , якщо вона була придбана пояснення про те , як і те, чому це вирішує проблему. Пам’ятайте, що ви відповідаєте на запитання читачів у майбутньому, а не лише про людину, яка зараз запитує! Будь ласка, відредагуйте свою відповідь, щоб додати пояснення та вказати, які обмеження та припущення застосовуються.
Toby Speight

дозволити з'єднання з усіх ips дійсно небезпечно
sandes
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.