【问题标题】:Does the PG Ruby Gem use pgpass when setting up PostgreSQL connection?PG Ruby Gem 在设置 PostgreSQL 连接时是否使用 pgpass?
【发布时间】:2013-08-16 20:33:10
【问题描述】:

我正在编写一个使用 PG gem 来建立数据库连接和发送文件的 Ruby 脚本。我正在构建它以获取主机名、用户名、数据库名称和端口的变量。在我编写的用于管理一些伴随任务的 Shell 脚本中,我依赖存储在 ~/.pgpass 中的密码,而不是让用户输入 psql 的密码,因为有很多事务,有时输入密码可能会失败没有明显的原因(并且在 20 次中输入它很糟糕)。

如果没有明确提供密码,PG 会访问相同的源吗?按照惯例,我已将密码包含在文件中,但由于它被推送到内部可用的存储库,我不希望在我的文件中包含该信息。我现在正在尝试测试该功能,但想知道 SO 社区中是否有人知道这个问题的答案。如果 PG 不访问 .pgpass 文件,有没有办法引用变量并将其写入文件而不提示用户输入密码?

提前感谢您的帮助。

【问题讨论】:

    标签: ruby postgresql database-connection psql


    【解决方案1】:

    是的,它将使用~/.pgpass,就像任何基于libpq(C PostgreSQL 客户端库)的接口一样。

    但是,在文件中没有密码的一个很好的替代方法是将它放在PGPASSWORD 环境变量中。如果您在脚本中设置它,它将被它调用的每个程序继承。

    PGPASSWORD 设置后将用作任何libpq 连接的密码,这意味着大多数连接到 PostgreSQL 的程序。

    【讨论】:

      猜你喜欢
      • 2017-01-11
      • 1970-01-01
      • 2020-03-24
      • 2013-09-12
      • 2017-10-06
      • 1970-01-01
      • 2014-07-13
      • 2011-11-11
      • 1970-01-01
      相关资源
      最近更新 更多