Авторизация пользователя PostgreSQL / Проблемы Конфигурации

Я установил postgresql 9.3, но не могу добраться, любые пользователи авторизовали. Я также не могу использовать initdb или pg_ctl. Я не могу найти pg_hba.conf также.

0
задан 8 July 2015 в 01:25

1 ответ

Где pg_hba.conf файл находится:

pg_hba.conf находится в /etc/postgresql/X.Y/main/ (где X.Y Ваша версия, 9.3 для Вас, 9.4 для меня).


"Недостающие" программы:

pg_ctl может не быть установлен по умолчанию. initdb может не также быть установлен по умолчанию. Оба являются устанавливаемыми postgres-xc.


Добавление пользователей, таким образом, они могут быть авторизованы:

Необходимо будет добавить пользователя/роль на пути psql клиент командной строки. Необходимо будет затем добавить пользователя к pg_hba.conf.

Я предлагаю использовать pgadmin3, графический интерфейс / программа, для работы с пользовательскими ролями и добавлением их. Это позволяет Вам конкретно выбирать отдельные полномочия, которые Вы хотите дать пользователю глобально (который не должен обычно быть никакими специальными полномочиями, только чтобы создать пользователя и дать полномочия для данного DB отдельно).


Конфигурирование pg_hba.conf

Это может быть немного хитро. После того как Вы сделали, чтобы пользователь вошел в роль, необходимо добавить их к pg_hba.conf. Формат файла полностью объяснен подробно в документации PosgreSQL. Краткое изложение здесь.

Если нет согласующий отрезок длинной линии здесь, правило доступа по умолчанию, "запрещают доступа".

Это - формат a pg_hba.conf строка:

TYPE DATABASE USER ADDRESS METHOD

type тип соединения. Локальные соединения от того же компьютера добираются local ввести. Соединения от нелокального IP (т.е. по TCP) добираются host ввести. hostnossl может использоваться и определит любое сетевое соединение с ним (т.е. нелокальный), который не является по SSL. hostssl может использоваться для определения любого сетевого соединения, которое является по SSL, однако это не значение по умолчанию, чтобы настроить SSL.

database очевидно - какую базу данных делают Вы хотите установить эти полномочия/ограничения доступа на. Специальный тип БД all который указывает на все базы данных.

user имя пользователя / роль, которую Вы добавили к Пост-ГРЭС. Это должно существовать в пост-ГРЭС, и это, возможно, должно существовать как локальный пользователь системы (однако, это объяснено в том, где я объясняю METHOD).

ADDRESS IPv4 или адрес IPv6 или диапазон. Это только, чтобы использоваться когда host, hostnossl, или hostssl указаны под type. Это может быть диапазон CIDR или отдельный IP-адрес.

METHOD то, как обработать аутентификацию.

  • Для локального пользователя с local введите, это должно быть peer аутентификация, или md5 аутентификация, если Вы хотите, чтобы пользователь смог войти в систему от другой учетной записи пользователя локального компьютера с паролем.
  • Для a host, hostssl, или hostnossl тип соединения, Вы, вероятно, хотите использовать md5 здесь, однако у Вас могут быть другие типы аутентификации (см. ссылку на документацию выше).
  • Ни при каких обстоятельствах, если Вы не безумны или действительно знаете то, что Вы делаете, должен Вы использовать trust метод. Это имеет нулевую аутентификацию человека и является дырой в системе безопасности от Черт, даже для local введите соединения.

Я советую Вам прочитывать связанную документацию относительно pg_hba.conf файл, это - лучшее объяснение вещей.

0
ответ дан 4 October 2019 в 01:07

Другие вопросы по тегам:

Похожие вопросы: