- Создать пользователя ama_user , если он ещё не был создан, из под которого вы будете предоставлять доступ другим пользователям к вашей базе данных.
- Далее необходимо настроить права на работу с объектами базы для пользователя ama_user. Для этого нужно выбрать в списке баз данных базу данных, для которой мы открываем удалённый доступ, к примеру ama , и открыть пункт tools в верхнем меню pgAdmin и выбрать инструмент Grant Wizard .
- В окне инструмента Grant Wizard на первом шаге необходимо выбрать объекты на которые будут выданы права. В данном случае нам нужно раздать права только на объекты Table и View , поэтому в поле поиска (в верхнем правом углу) вводим Table|View , чтобы отфильтровать список только по этим объетам. Затем отмечаем все объекты галочками и нажимаем Next .
- На втором шаге потребуется выбрать перечень операций над объектами, которые будут доступны пользователю. Для этого кликаем на + , чтобы добавить "привелегию" и задаём пользователя, из списка пользователей и ролей в колонке Grantee . В колонке Privileges выбираем перечень операций. Минимальный перечень для работы с базой ПАУ, указан на рисунке ниже.
На третьем шаге просто нажимаем кнопку Finish .
Открыть папку с установленной БД PostgreSQL
По умолчанию БД устанавливается:
- x86: C:Program Files (x86)PostgreSQL10data
- x64: C:Program FilesPostgreSQL10data
В текстовом редакторе открыть файл pg_hba.conf
host all all 127.0.0.1/32 md5
host ama ama-user all md5
Небольшая расшифровка этой строки:
Вид подключения | Наименование базы данных | Имя пользователя | IP адрес удалённого рабочего места | Метод аутентификации |
---|---|---|---|---|
host | ama | ama-user | all | md5 |
host — используется подключение по TCP/IP
ama – Удалённый пользователь сможет подключаться к базе данных ama , название базы можно заменить на своё, например mydb . Помимо этого можно написать слово all , тогда для пользователя будет открыт доступ ко всем базам данных сервера
ama-user – пользователь с псевдонимом ama-user сможет подключаться к базе данных ama , если указать слово all , то база данных будет доступна любому пользователю
all — Используется в качестве адреса удалённого рабочего места, в данном случае доступ открывается для любой удалённой машины, для пользователя с псевдонимом указанном в предыдущем столбце. Если требуется указать конкретный адрес, то его можно написать вот в такой форме: 192.168.0.2/32 , а для нескольких пользователей придётся указывать несколько строк подключения, указывать каждого в новой строке, пример будет приведён ниже
md5 – пароль пользователя хешируется алгоритмом MD5, если соответствует, то можно зайти
Пример предоставления доступа нескольким рабочим местам через пользователя ama-user к базе данных ama :
host ama ama-user 192.168.0.2/32 md5
host ama ama-user 192.168.0.3/32 md5
host ama ama-user 192.168.0.4/32 md5
Для более подробной информации по настройке конфига pg_hba.conf, пройдите по ссылке.
Сохранить изменения в файле;
Выбрать в списке служб postgresql и перезапустить ёё
Настройка брандмауэра Windows
Данный пункт необходим, если с СУБД PostgreSQL работает несколько пользователей одновременно. Так же, следует уточнить, что в этом пункте рассматривается базовый сценарий по открытию порта для подключения и может не подойти Вам по параметрами безопасноти.
Открыть Панель управления -> Брандмауэр защитника Windows ;
Выбрать пункт Дополнительные параметры ;
Выбрать пункт Правила для входящих подключений -> Создать правило. . На форме мастре создания правила выбрать Для порта и нажать Далее
Выбрать пункт Протокол TCP и пункт Определенныйе локальные порты . На стадии установки СУБД PostgreSQL было предложено указать порт для доступа к БД PostgreSQL. Номер порта необходимо ввести в поле Определенные локальные порты: (по умолчанию, при установке указывается порт 5432 ) и затем нажать Далее
Выбрать пункт Разрешить подключение и затем нажать Далее
Выбрать все пункты и нажать Далее
Задать имя правила, например ama-pg и нажать Готово
Настройка порта завершена
После выполнения всех пунктов данной инструкции, к БД Postgres можно подключаться с удаленного компьютера
По умолчанию, сервер баз данных pgsql разрешает подключение только с локального компьютера. Данная инструкция показывает, как разрешить подключения с удаленных систем. Она написана на примере Linux CentOS и PostgreSQL 9.5.
Для начала посмотрим путь расположения баз данных:
# ps aux | grep postgres | grep — -D
Команда выдаст, примерно, следующее:
Нас интересует строчка после -D. В данном примере /db/pgsql — это путь расположения баз и конфигурационных файлов сервера баз данных.
Теперь открываем на редактирование основной файл конфигурации PostgreSQL:
* напоминаю, что начало пути /db/pgsql может быть другим. Мы его получили командой ps.
Находим и редактируем следующее:
* по умолчанию, параметр закомментирован и настроен на прослушивание запросов только с локального сетевого интерфейса. В данном примере мы разрешили прослушивание запросов на всех IP-адресах (*), но, если требуется более безопасная настройка, можно просто перечислить последние через пробел.
После открываем на редактирование следующий конфигурационный файл:
и внизу добавляем следующую строку:
host all all 192.168.0.10/32 password
* в данном примере мы разрешаем удаленные подключения к серверу с компьютера 192.168.0.10. Доступ предоставляется всем учетным записям и всем базам (значение all). При желании, вместо all можно указать конкретные данные для повышения безопасности.
Чтобы изменения вступили в силу, перезапускаем службу postgresql:
# systemctl restart postgresql-9.5
Проверить подключение можно с удаленного компьютера следующей командой:
# psql -h 192.168.0.15 -U usersql
* где 192.168.0.15 — IP-адрес сервера баз данных; usersql — имя учетной записи, от которой идет подключение.
19 января 2014 г. 13:27
В первую очередь нужно разрешить подключаться к postgresql с внешних ip. Для этого находим файл postgresql.conf (у меня находится в папке /etc/postgresql/9.1/main) и правим следующую строчку:
Обратите внимание, что нужно убрать перед директивой listen_addresses знак комментария #.
А в файле pg_hba.conf (лежит в там же, что и postgresql.conf) добавляем следующую строчку:
где:
hostssl — подключаемся через SSL
all — разрешаем подключение ко всем базам
postgreadmin — имя пользователя, которому разрешаем подключение
0.0.0.0/0 — маска сети с которой можно подключаться
md5 — способ шифрования пароля
Теперь нам нужно создать пользователя postgreadmin в postgresql, через которого будем подключаться:
Используемые опции команды createuser :
-s — добавить пользователю права суперпользователя
-r — разрешить пользователю создавать других пользователей
-d — разрешает пользователю создавать базы данных
-P — добавить к пользователю пароль
Настройка закончилась, самое время перезапустить postqresql, например командой:
и уже подключиться с другого ПК, используя какой-нибудь клиент, например, pgadmin.
В pgadmin нужно щёлнуть "Новое подключение" и в окне ввести следующие поля:
Имя — желаемое имя, например: my_server
Хост — ip-адрес сервера, например: 188.123.456.768
Порт — 5432 (по умолчанию)
Имя пользователя — postgreadmin
Пароль — созданный выше пароль
Остальные поля стоят по умолчанию. Нажимаете OK. Если всё заработало, то поздравляю — удалённое подключение к postgresql настроено.