Мой вопрос

Мой вопрос

Мой вопрос

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

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

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

initdb \
            -D "$POSTGRES_DATA_DIR/" \
            --username postgres --pwfile "$PWFILE" \
            --auth-local=trust --auth-host=password

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

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

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

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

решение1

Вы не предоставили никакой информации о версии 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:

CREATE ROLE username LOGIN ENCRYPTED PASSWORD 'insert-your-password-here';

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

Более подробную информацию можно найти в прилагаемой документации.

Связанный контент