Рейтинг:0

Могу ли я создавать пользователей для конкретного хоста в Postgres? (например: postgres@localhost)

флаг gl

Мой вопрос

Могу ли я установить разрешения для пользователя (например: постгрес) таким образом, что этому пользователю разрешено входить только с локального хоста TCP, но не из Интернета?

Доверенные сокеты и пароли для удаленных устройств

Я понимаю, что вы можете инициализировать postgres, чтобы локальные пользователи могли входить в систему без пароля, а удаленные хосты — с паролем:

initdb \
            -D "$POSTGRES_DATA_DIR/" \
            --username postgres --pwfile "$PWFILE" \
            --auth-local=доверие --auth-host=пароль

Интранет против Интернета

Для любой системы, которая подключается через Интернет, я хочу использовать пользователя, у которого есть очень, очень сильная (незапоминаемая) случайная 128-битная строка.

Однако для локального доступа и доступа к интрасети я бы предпочел иметь имя пользователя и пароль, которые я могу запомнить (и ввести).

Могу ли я это сделать... или мне просто нужно настроить одного пользователя на систему, которой разрешено подключение, с .pgpass на каждой?
(Я не хочу обмениваться ключами в текстовых файлах между компьютерами)

Рейтинг:1
флаг tz

Вы не предоставили никакой информации о своей версии PostgreSQL, я предполагаю, что вы используете PostgreSQL 12.

Могу ли я установить разрешения для пользователя (например, postgres), чтобы этому пользователю было разрешено входить только с локального хоста TCP, но не из Интернета?

Да, используйте pg_hba.conf. Вы можете сначала загрузить это через hba_file конфигурация времени выполнения.

Однако для локального доступа и доступа к интрасети я бы предпочел иметь имя пользователя и пароль, которые я могу запомнить (и ввести).

Если вы хотите добавить локального пользователя, защищенного паролем, добавьте

local <database_name> <local-only_user_name> scram-sha-256 

в вашей pg_hba.conf.

Вы, вероятно, хотите сначала создать пользователя через СОЗДАТЬ РОЛЬ:

CREATE ROLE имя пользователя ВХОД ЗАШИФРОВАННЫЙ ПАРОЛЬ 'вставьте-свой-пароль-здесь';

Вы также можете проверить хозяин и hostssl записать запись, чтобы добавить к себе pg_hba.conf настроить аутентификацию на основе интрасети и Интернета.

Проверьте связанную документацию для получения дополнительной информации.

флаг gl
«local: эта запись соответствует попыткам подключения с использованием сокетов домена Unix». (local не является localhost, что было частью того, что раньше меня сбивало с толку)
флаг gl
Комментарии в моем pg_hba.conf, похоже, не предполагают, что имя пользователя может быть указано, но я вижу, что официальные документы делают это. Спасибо. Я попробую это позже сегодня и отмечу это как решение, если оно сработает. :)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.