2015-04-02 2 views
2

Когда я подключаю базу данных postgres от heroku с помощью Auth0, тогда я становлюсь ниже ошибки.Как подключить базу данных postgres с помощью Auth0

could not connect to postgres db { [error: no pg_hba.conf entry for host "XXXXXXXX", user "XXXXXX", database "XXXXXX", SSL off] 
    name: 'error', 
    length: 161, 
    severity: 'FATAL', 
    code: '28000', 
    detail: undefined, 
    hint: undefined, 
    position: undefined, 
    internalPosition: undefined, 
    internalQuery: undefined, 
    where: undefined, 
    schema: undefined, 
    table: undefined, 
    column: undefined, 
    dataType: undefined, 
    constraint: undefined, 
    file: 'auth.c', 
    line: '496', 
    routine: 'ClientAuthentication' } 
[error] 28000 - undefined 

Я использую Auth0, поэтому, пожалуйста, найдите ниже код auth0 с деталями и URL-адресом базы героя.

configuration.config_file = "postgres://username:[email protected]host:port/DB_name" 

function login (email, password, callback) { 

    var conString = configuration.config_file; 
    postgres(conString, function (err, client) { 
    if (err) { 
     console.log('could not connect to postgres db', err); 
     return callback(err); 
    } 
    }); 
} 
+0

Добро пожаловать в Stackoverflow. Пожалуйста, опубликуйте сообщения об ошибках, если вы их получите. – Daenarys

+0

Вы предоставили правильные разрешения для доступа к вашей базе данных? Файл pg_hba.conf - это права доступа, похоже, что IP-адрес вашего сервера не указан или не имеет соответствующих разрешений. –

+0

@yakiklein Не могли бы вы рассказать мне, как дать разрешение при доступе к базе данных герою с auth0? –

ответ

2

Код, который вы здесь пишете, запускается в Auth0 (в облаке). Это означает, что вам нужно будет использовать имя хоста или IP-адрес, к которому может подключиться Auth0.

Если вы используете имя хоста, например DBSERVER01, или IP-адрес, такой как 10.10.5.1, они доступны только в вашей сети, и auth0 не сможет их найти.

Убедитесь, что вы используете общедоступный IP-адрес вашей сети (например, 45.19.3.29) или общедоступное имя хоста (например, mydb01.mycompany.com).

+0

Как получить доступ к базе данных postgres героя на локальной машине с auth0? –

+0

Согласно этому документу от Heroku: https://devcenter.heroku.com/articles/connecting-to-heroku-postgres-databases-from-outside-of-heroku, вы не должны жестко кодировать URL-адрес базы данных или IP-адрес. Вы должны получить его через 'heroku config: получите DATABASE_URL -a ваше приложение. Однако это проблема при использовании сценариев действий базы данных auth0, поскольку они изолированы и не разрешают доступ к сети. Я еще не понял этого: есть ли у кого-нибудь еще решение? – Pierre

-2

Посмотрите на этот document с сайта ubuntu. В нем объясняется, как установить локальную базу данных postgres.

После установки postgres вам необходимо создать пользователя и дать ему правильную аутентификацию.

+0

спасибо за это, я хочу использовать базу данных heroku на локальном сервере с auth0. см. мой код. –

+0

Этот ответ не учитывает тот факт, что ОП использует герою. – Pierre

Смежные вопросы