将SSL证书路径传递到PostgreSQL ODBC驱动程序

时间:2019-03-18 17:56:16

标签: postgresql odbc

我正在尝试连接到Postgres数据库,该数据库要求客户端使用PostgreSQL驱动程序的ODBC驱动程序将路径传递到客户端和服务器SSL证书。我在Windows 10上使用psqlodbc v11 x86。我需要将三个选项传递给ODBC驱动程序sslrootcertsslcertsslkey。我知道odbc驱动程序没有传递路径,因为当我使用下面的连接字符串进行连接时,在其中指定了pqopts,它就可以连接。

Driver={PostgreSQL UNICODE};Server=XXXX;Port=5432;Database=XXXX;Uid=XXXX;Pwd=XXX;sslmode=verify-ca;pqopt={sslrootcert=C:\\ssl\\pgSQL.ca.cert sslcert=C:\\ssl\\pgSQL.cert sslkey=C:\\ssl\\pgSQL.key}

根据文档部分 Advanced Options 3/3 Dialog Box->Libpq parameters,我应该能够通过将括号内的值直接输入到文本框中来传递参数。它显示错误消息,指出它找不到证书,因为它在默认位置中查找并且未使用Libpq文本框中提供的值。难道我做错了什么?任何有关如何连接通过客户端证书的建议将不胜感激。

Setting parameters

Error Message

1 个答案:

答案 0 :(得分:0)

请回答此问题,以防其他人觉得有用。问题似乎是ODBC驱动程序上的“测试”按钮没有考虑libpq参数中设置的选项,而仅使用默认设置。当我保存ODBC连接时,关闭了ODBC Data Source Administrator窗口,并使用了来自其他程序的连接,它能够成功连接。