如何在.pgpass文件中输入多个条目?

use*_*806 1 passwords postgresql bash

我应该使用用户名和密码从5台远程计算机上的bash脚本执行相同的psql命令.

我已经读过,我们必须在.pgpass文件中传递凭据,并在执行psql命令时使用-w选项.

但是如何使用相同的.pgpass文件在5台机器上执行相同的命令?

abh*_*_gl 6

您可以在.pgpass文件中添加多个条目,例如

句法:

hostname:port:database:username:password
Run Code Online (Sandbox Code Playgroud)

样本文件:

test.net:5432:testdb:testuser:testpass
test1.net:5432:testdb1:testuser1:testpass1
test2.net:5432:testdb2:testuser2:testpass2
Run Code Online (Sandbox Code Playgroud)

确保.pgpass文件的权限设置为0600

chmod 0600 .pgpass
Run Code Online (Sandbox Code Playgroud)

  • 您需要使用:用户名,主机名,dbname进行连接,而不必提供密码。Psql将使用.pgpass中的密码连接到数据库。参见http://www.postgresql.org/docs/9.3/static/libpq-pgpass.html (2认同)

Red*_*dog 6

您还可以使用通配符(例如 *),这对于数据库特别方便。

这意味着对于 pgpassfile 语法:

hostname:port:database:username:password
Run Code Online (Sandbox Code Playgroud)

可以与以下值一起使用:

my-host:5432:*:my-username:my-plaintext-password

Run Code Online (Sandbox Code Playgroud)

使您能够使用相同的凭据连接到服务器上的所有数据库。如果您需要针对特定​​数据库的不同凭据,请在这一行之前使用更多行。