ruby - PG Ruby Gem 在设置 PostgreSQL 连接时是否使用 pgpass?

标签 ruby postgresql database-connection psql

我正在编写一个使用 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/

相关文章:

ruby-on-rails - 使用重定向是否很慢,因为它会导致额外的请求?

ruby-on-rails - 如何在 mongoid/rails 中获取一个字段?

SQL查询根据剩余内容获取ID相同的行

java - 以编程方式检查java中服务器的可达性

mysql - 无法从 Workbench 建立数据库 SSH 连接

ruby-on-rails - Rails 格式验证——字母数字,但不是纯数字

ruby-on-rails - ActionController::UnfilteredParameters - 无法将未经允许的参数转换为散列 - Rails 5.1.6

sql - 排名函数不限于前 5 个排名值 Postgresql Windows 函数

java - 没有错误,但数据没有插入到表中

postgresql - 当数据库连接关闭或丢失时, Hook Postgres 服务器运行代码?