Pgpass在unixODBC/pyodbc中不工作

问题描述:

因此,我似乎无法使用Python中的unixODBC/pyodbc来获取PostgreSQL的“.pgpass”功能。Pgpass在unixODBC/pyodbc中不工作

我有一个工作〜/ .pgpass文件,如命令行工具psql所证实的,并且我有一个工作的odbc.ini条目,如我的Python脚本所确认的。这里的问题是我希望脚本通过〜/ .pgpass文件获取密码,因为我不想在DSN条目或odbc.ini条目中指定密码(其中任何一个都可行) 。

我已经尝试将pg_hba.conf中的本地和主机条目设置为包括md5,密码,ident,peer和trust在内的各种值。当然,信任是可行的,但是这使得安全性处于我不习惯的级别,因为它实际上并没有进行任何身份验证。

有没有人得到这个工作?下面是一些相关的条目:

的pg_hba.conf

local all    all          md5 
host all    all    127.0.0.1/32   md5 
host all    all    ::1/128     md5 
host all    all    0.0.0.0/0    md5 
host all    all    ::/0     md5 

ODBC.INI

[MyEntry] 
Driver     = PostgreSQL 
Server     = myServer 
Port     = 5432 
Database    = myDB 
Username    = myUser 
Trace     = Yes 

.pgpass

myServer:5432:*:myUser:myPassword 
+0

任何你不使用psycopg2的理由? – FlipperPA

+0

因为我也连接到MSSQL和MySQL数据库。使用pyodbc为我想连接的任何数据库提供单一接口。 –

+0

这绝对公平。我也连接到所有这三个,但使用单独的驱动程序(psycopg2,pyodbc,mysql-connector-python)来提高性能和简化性。它有一些混淆因为它们有不同的参数语法等等。 – FlipperPA

libpq的使用.pgpass文件。你不能在odbc中使用它。