Соединение Rstudio с PostgreSQL в AWS EC2 - PullRequest
0 голосов
/ 02 ноября 2019

В настоящее время я использую сервер PostgreSQL в AWS EC2 (Ubuntu) и не могу получить к нему доступ с локального сервера. Как я могу получить доступ к удаленной базе данных из локального RStudio?

Код в R:

library(RPostgreSQL)
library(DBI)

drv <- dbDriver("PostgreSQL")

con <- dbConnect(drv, user='postgres', password='password', dbname='dvd', host='ec2-xx-xxx-xxxx-xxxx.ap-northeast-2.compute.amazonaws.com',port=5432)

dbListTables(con)

Результат:

Error in postgresqlNewConnection(drv, ...) : 
  RS-DBI driver: (could not connect postgres@ec2-xx-xxx-xxxx-xxxx.ap-northeast-2.compute.amazonaws.com:5432 on dbname "dvd": FATAL:  no pg_hba.conf entry for host "130.17.152.1”, user "postgres", database "dvd", SSL off
)
Calls: <Anonymous> ... eval -> dbConnect -> dbConnect -> postgresqlNewConnection
Execution halted

Для группы безопасности AWS я добавил входящий поток для PostgreSQL с источником, установив его в любом месте сдиапазон портов 5432.

1 Ответ

1 голос
/ 02 ноября 2019

По умолчанию Postgres не разрешает удаленные подключения. Чтобы разрешить удаленные подключения, вам нужно добавить запись в файл pg_hba.conf на сервере EC2. Точное местоположение pg_hba.conf варьируется в зависимости от установки, но вот несколько путей, которые нужно попробовать:

/etc/postgresql/[VERSION]/main/
/var/lib/postgresql/[version]/

После того, как вы нашли pg_hba.conf, вам нужно добавить строку, чтобы разрешить удаленные подключения, дляпример.

# TYPE  DATABASE        USER            ADDRESS                 METHOD
  host  dvd             postgres        130.17.152.1/32         md5

Предполагается, что IP-адрес вашего локального сервера (130.17.152.1) является статическим. Если нет, вы можете использовать 0.0.0.0/0 для АДРЕСА, также вы можете использовать all для БАЗЫ ДАННЫХ и ПОЛЬЗОВАТЕЛЯ следующим образом:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
  host  all             all             0.0.0.0:0                     md5

Зависит от того, насколько сильно вы хотите, чтобы ваша безопасность была, но нестиИмейте в виду, что это безопасность на уровне базы данных и она полностью отделена от ваших групп безопасности AWS.

См. https://www.postgresql.org/docs/9.1/auth-pg-hba-conf.html для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...