【问题标题】:Pgpass not working in unixODBC/pyodbcPgpass 在 unixODBC/pyodbc 中不起作用
【发布时间】:2017-04-03 16:12:15
【问题描述】:

所以我似乎无法让 PostgreSQL 的“.pgpass”功能在 Python 中使用 unixODBC/pyodbc 工作。

我有一个可用的 ~/.pgpass 文件,由命令行工具 psql 确认,并且我有一个可用的 odbc.ini 条目,由我的 Python 脚本确认。这里的问题是我希望脚本通过 ~/.pgpass 文件获取密码,因为我不想在 DSN 条目和 odbc.ini 条目中指定密码(两者都有效) .

我尝试将 pg_hba.conf 中的本地和主机条目设置为各种值,包括 md5、密码、身份、对等点和信任。信任当然有效,但这将安全性置于我不满意的水平,因为它实际上并没有进行任何身份验证。

有人让这个工作吗?以下是一些相关条目:

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

【问题讨论】:

  • 有什么理由不使用 psycopg2 代替吗?
  • 因为我还连接到 MSSQL 和 MySQL 数据库。使用 pyodbc 为我提供了一个连接到我想要连接的任何数据库的单一界面。
  • 这绝对是公平的。我也连接到所有三个,但使用单独的驱动程序(psycopg2、pyodbc、mysql-connector-python)以提高性能和简单性。它确实有点令人困惑,因为它们具有不同的参数语法等。

标签: python postgresql pyodbc unixodbc


【解决方案1】:

libpq 使用的.pgpass 文件。您不能从 odbc 使用它。

【讨论】:

    猜你喜欢
    • 2020-05-28
    • 2018-12-27
    • 1970-01-01
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    相关资源
    最近更新 更多