(Ubuntu), установил PostgreSQL. В процессе не создавал пользователей, не устанавливал пароли.
Хочу подключиться к БД через IDE DataGrip. Теструю доступ к серверу по SSH - всё нормально, но требуется указать логин и пароль для доступа к Postgre.
Пользователь стандартный (создан автоматом во время установки): postgres
Как быть с паролем?
Нашёл вот такую статью: https://devmems.ru/library/article/16
Это безопасно?
М.б. нужно создать пользователя с правами админа и с паролем и подключаться?
Для тестовой среды плевать
Оке. А если не тестовая (на будущее);
Тогда у вас не должно быть ни доступа shh, ни тем более доступа к пользователю со всеми провами
Создайте отдельного пользователя для сервиса и владельцем бд сделайте
Владельцем зачем?
Человеку, судя по всему, нужно управлять бд
Можно не делать, правильно сказать, выдайте нужное (минимально) количество прав
В совете написано, что пользователь для сервиса должен быть владельцем. Это вредный совет.
В общем, я правильно понимаю, что: 1. редактировать pg_hba.conf для предоставления доступа со всех IP = не безопасно. 2. задавать пароль для ситемной учётной записи postgres = не безопасно. Желательно создать УЗ внутри СУБД, выдать ей права админа, например и при подключении использовать созданную УЗ. Верно?
Мне нужно создавать / удалять БД в СУБД.
Кто будет пользоваться созданными БД?
Я) Я учусь, но хочу изначально понимать как делать правильно.
Согласно документации PostgrePro лучше содавать отдельную УЗ, а не задавать пароль системной УЗ.
По-простому. Создавать и удалять БД и пользователей под выделенной ролью. Для каждой БД есть владелец и роли для сервисов. Права разделены на уровне connect только к своей БД. Все ddl в конкретной БД под владельцем. Роли для сервисов получают только минимально необходимые права от владельца. Ну и запретить ddl в public. Что делать с pg_hba - слабо представляю. Лучше вообще не выставлять pg в Интернет, хотя фатальных последствий не должно быть. Когда надо было выставить, закрывали помимо pg_hba ещё и iptables.
>1. редактировать pg_hba.conf для предоставления доступа со всех IP = не безопасно. Практически всегда так делаю, а прикрываю всё кроме нужной сети файрволлом. >2. задавать пароль для ситемной учётной записи postgres = не безопасно. Да в принцыпе невелика разница -- пароль в postgres или необходимость ssh+sudo. Ну, так, второе на копейку можэт получшэ в плане безопасности. Но, на самом деле, всё зависит от адэкватности процэдур доступа ужэ -- и обычно вот кокретно этот момент -- можэт ли кто-нибудь из правильной сети зайти под суперпользователем сразу -- не имеет большого значения. >выдать ей права админа, например И после этого не очень важно, что она называется не postgres. Ну, такоэ.
Благодарю за развёрнутый ответ. Илья, можете посоветовать материалы / статьи / видео, чтобы понять как Вы реализуете прикрытие файерволом?
Обсуждают сегодня