- Создать пользователя
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
- x86:
-
В текстовом редакторе открыть файл
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/IPama
– Удалённый пользователь сможет подключаться к базе данных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 можно подключаться с удаленного компьютера
Актуальная версия этой статьи находится на моём новом сайте devmark.ru Для того, чтобы открыть доступ по локальной сети с других машин к БД, которая развёрнута на данной, нужно отредактировать два файла: postgresql.conf и pg_hba. Привожу пример для своей системы, на которой установлена Ubuntu 12.04 и postgresql 9.1. В файле /etc/postgresql/9.1/main/postgresql.conf находим строку
listen_addresses = ‘*’
и раскомментируем её (убираем решётку в начале строки) или добавляем, если такой строки в этом файле нет. Данный параметр говорит о том, чтобы обрабатывать все сообщения, приходящие извне. В противном случае будут обрабатываться только локальные запросы. Затем в файле /etc/postgresql/9.1/main/pg_hba.conf с правами администратора нужно указать, какие хосты имеют право подключаться к указанной БД и каким образом обеспечивается безопасность подключения. В самом простом случае открываем доступ с любого компа в подсети 192.168.1.*: Безопасность обеспечивается хэш-функцией md5 от пароля.Внимание! Все эти настройки могут быть только на тестовых стендах или компьютерах разработчиков. В целях безопасности, на промышленных системах доступ должен быть ограничен гораздо сильнее.FAQРуководствоЧастозадаваемые вопросы (FAQ)PostgreSQLРабота PostgreSQL по сетиЗапуск PostgreSQL по сети
- Я хочу иметь доступ к моей базе PostgreSQL с нескольких компьютеров в локальной сети.
- Я хочу использовать базу данных на моем компьютере через интернет, когда я путешествую. (Шаги 6 и 7 )
Примечание: Настраивайте эту опцию, только в том случае, если Вы имеете опыт решения сетевых задач на компьютере. Не забудте сделать резервную копию данных.
- Убедитесь, что Ваш пароль к PostgreSQL достаточно безопасен.
Если нужно изменить пароль, выполните такие действия:
a) Запустите PgAmdin3.exe по пути C:/ Program Files/PostgreSQL/8.3/bin .
b) Залогиньтесь и выберите раздел Роли входа. c) Щелкните правой кнопкой по пользователю postgres и в контекстном меню выберите Свойства. d) Измените пароль, и нажмите OK.
2. Убедитесь, что компьютер с базой данных (сервер базы данных) имеет статический IP адрес. В этой статье, пусть этот адрес будет 192.168.2.2.
В PgAdmin III, выберите Файл > Открыть postgresql.conf (Файл находится по пути PostgreSQL/8.3/data ). Убедитесь, что параметр listen_adress заполнен.
Откройте файл pg_hba.conf, таким же образом — Файл > Открыть pg_hba.conf (Файл находится по пути PostgreSQL/8.3/data ). .
Добавьте новую строку, дважды щелкнув по пустой строке
Добавьте строку с параметрами, типа:
- host/all/postgres/0.0.0.0/md5 — если Вы хотите настроить доступ к Вашей базе из интернета (Читайте также дополнительные шаги для настройки интернет доступа)
- host/all/postgres/192.168.2.3 (= Ip-адрес ноутбука)/md5 — если Вы хотите настроить доступ только с другого компьтера/ноутбука в локальной сети.
- host/all/postgres/192.168.2.0 (= адрес Вашей локальной сети)/md5 — если Ваш ноутбук имеет динамический адрес, получаемый от DHCP сервера.
- host/all/192.168.2.3/trust — если Вы хотите, чтобы доступ был без пароля.
Из PgAdmin III или Служб, остановите и перезапустите службу Postgres .
Закройте PgAdmin III.
4. Сделайте исключения в Вашем брендмауэре
Откройте окно настройки брендмауэра Windows (если Вы используете другой брендмауэр, читайте руководство)
Перейдите на закладку «Исключения» и выберите «Добавить порт».
Выберите: Любой компьютер, если настраиваете доступ по интернету Или выберите: Только Локальная сеть, если хотите установить доступ внутри сети.
В поле Server Name введите адрес компьютера с базой PostgreSQL, у нас это 192.168.2.2
(Если Холдем Менеджер уже был установлен и настроен, нужно перейти в меню Options — database management) Введите пароль, который Вы установили на первом шаге.
После нажатия на кнопку Connect Вы должны подключиться к серверу баз данных.
Дополнительные шаги для настройки интернет доступа.
6. — Создайте бесплатный account DynDNS.
Убедитесь, что Ваш router/internet modem поддерживает DynDNS. Перейдите http://www.dyndns.org. Сделайте бесплатный account. Устновите host service например: MyHEMDBserver.dnsalias.org
Обновите запись DynDNS в Вашем роутере. ( Если не знаете как, читайте руководство к Вашей железяке) и/или используйте бесплатные клиенты DynDNS, которые можно найти тут : http://www.dyndns.com/support/clients/ для обновления Вашей записи DynDNS. Убедитесь, что запись DNS на DynDNS регулярно обновляется, иначе Ваш account будет недоступен.
7. Настройка в роутере переадресации доступа (redirect access) от роутера к серверу баз данных.
Сделайте portforward для TCP port 5432 на ip адрес вашего сервера баз данных: Как это настроить в Вашем роутере читайте http://portforward.com/
8 – Настройка доступ к вашей базе данных через интернет.
Установите Holdem manager на Ваш ноутбук. Вам не нужно устанавливать Postgres. Откройте Holdem manager. В поле Server Name введите MyHEMDBserver.dnsalias.org .
(Если Холдем Менеджер уже был установлен и настроен, нужно перейти в меню Options — database management) Введите пароль, который Вы установили на первом шаге.
После нажатия на кнопку Connect Вы должны подключиться к домашнему серверу баз данных.
</td></table>Используемые источники:
- https://support.russianit.ru/hc/ru/articles/360007962959-настройка-удаленного-доступа-к-бд-postgresql
- http://developer-remarks.blogspot.com/2013/01/postgres.html
- http://holdemmanager.nlclub.org/faq/90.html