2015-01-30 3 views
14

Я хочу подключиться к удаленной базе данных PostgreSQL через Python для выполнения базового анализа данных. Эта база данных требует SSL (проверьте-ка), вместе с тремя файлами (которые у меня есть):Как подключиться к удаленной базе данных PostgreSQL с помощью Python

  • файл корневого сертификата сервера
  • файл сертификата клиента файл ключа
  • Client

У меня есть не удалось найти учебник, в котором описывается, как сделать это соединение с Python. Любая помощь приветствуется.

+0

psycopg2. Найдите это в google. –

+0

@GamesBrainiac Спасибо. У меня есть. Проблема связана с добавленными требованиями ssl. Я не мог найти синтаксис для этого. – Pep

+1

Параметры @Pep, SSL описаны здесь: https://www.postgresql.org/docs/current/static/libpq-connect.html#LIBPQ-PARAMKEYWORDS вы можете передать любой из них методу 'connect'. – bluesmoon

ответ

24

Используйте модуль psycopg2.

Вам нужно будет использовать параметры SSL в строке подключения, или добавить их в качестве ключевых аргументов слова:

import psycopg2 

conn = psycopg2.connect(database='yourdb', user='dbuser', password='abcd1234', host='server', port='5432', sslmode='require') 

В этом случае sslmode указывает, что SSL требуется.

Для выполнения проверки сертификата сервера вы можете установить sslmode на номер verify-full или verify-ca. Вам необходимо указать путь к сертификату сервера в sslrootcert. Также установите значения sslcert и sslkey в ваш сертификат клиента и ключ соответственно.

Подробно объясняется в PostgreSQL Connection Strings documentation (см. Также Ключевые слова параметра) и в SSL Support.

+3

в django это работает, если вы укажете что-то вроде: '' OPTIONS ': {' sslmode ':' verify-full ', ' sslrootcert ':' /etc/pki/CA/certs/cabundle.pem '} 'как дополнительный «вариант» для вашего DATABASES ['default'] dict. –

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