Python DB2 SSL-соединение - PullRequest
       0

Python DB2 SSL-соединение

0 голосов
/ 30 ноября 2018

Я выполняю SQL-запросы (на стороне клиента) из DB2 баз данных, используя ibm_db & ibm_db_dbi с пандами.Однако наша компания внедрила новые стандарты безопасности, и мне также понадобится способ защитить соединение.Запуск Python3.7 и DB2 10.5

Ниже приведена моя текущая строка соединения:

import ibm_db
import ibm_db_dbi
import pandas as pd

dsn_driver = "IBM DB2 ODBC DRIVER"
dsn_database = "EUH0000"           
dsn_hostname = "MEUHC.s990.emea.ibm.com" 
dsn_port = "0000"                
dsn_protocol = "TCPIP"      
dsn_uid = "uid"        
dsn_pwd = "pwd"


dsn = (
"DRIVER={{IBM DB2 ODBC DRIVER}};"
"DATABASE={0};"
"HOSTNAME={1};"
"PORT={2};"
"PROTOCOL=TCPIP;"
"UID={3};"
"PWD={4};").format(dsn_database, dsn_hostname, dsn_port, dsn_uid, dsn_pwd)

conn = ibm_db.connect(dsn, "", "")
some_query = "SELECT *....."         # just an example

pconn = ibm_db_dbi.Connection(conn)
df = pd.read_sql(some_query, pconn)

Есть ли способ включить SSL для этогокод?Или мне вообще использовать другую библиотеку?

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Это, к сожалению, немного сложно, и (надеюсь) ваш DBA может помочь с этим.

Если вы используете клиент Db2 10.5 Fixpack 5 (или новее), тогда вы простонеобходимо добавить пару параметров в строку DSN:

Security=ssl; 
SslServerCertificate=/path/to/file.arm;

Ваш администратор БД должен быть в состоянии предоставить вам файл SslServerCertificate (или его содержимое).

Если вы установили клиент Db2 отдельно от пакета python ibm_db, то в зависимости от того, какой клиент Db2 вы установили (т. Е. Предоставили собственные библиотеки для ibm_db, вам может потребоваться установить)некоторые дополнительные библиотеки (библиотеки IBM GSKit, которые обеспечивают функциональность SSL для клиента Db2).

0 голосов
/ 30 ноября 2018

Попробуйте установить следующие свойства:

Безопасность = SSL, SSLClientKeystoredb, SSLClientKeystoreDBPassword или SSLClientKeystash, как описано по ссылке.

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