我正在编写一个使用 PG gem 设置数据库连接和发送文件的 Ruby 脚本。我正在构建它以获取主机名、用户名、数据库名称和端口的变量。在我编写的用于管理一些伴随任务的 Shell 脚本中,我依赖于存储在 ~/.pgpass
中的密码,而不是让用户为 psql
输入密码,因为有很多交易,有时输入密码可能会无缘无故地失败(输入 20 次就很糟糕)。
当没有明确提供密码时,PG 会访问相同的源吗?按照惯例,我已将密码包含在文件中,但由于这是被推送到一个内部可用的存储库,我不希望在我的文件中包含该信息。我现在正在尝试测试该功能,但想知道 SO 社区中是否有人知道这个问题的答案。如果PG不访问.pgpass文件,有没有办法在不提示用户输入密码的情况下引用变量并将其写入文件?
在此先感谢您的帮助。
最佳答案
是的,它将使用 ~/.pgpass
,就像任何基于 libpq
的接口(interface)一样,C PostgreSQL 客户端库。
但是,不将密码保存在文件中的一个很好的替代方法是将其保存在 PGPASSWORD
中。环境变量。如果您在脚本中设置它,它将被它调用的每个程序继承。
PGPASSWORD
设置后将用作任何 libpq
连接的密码,这意味着连接到 PostgreSQL 的大多数程序。
关于ruby - PG Ruby Gem 在设置 PostgreSQL 连接时是否使用 pgpass?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18281709/