我可以使用以下命令成功创建到 Postgres 数据库的连接:
my $settings = {
host => 'myhost',
db => 'mydb',
user => 'myuser',
passwd => 'mypasswd'
};
my $connection = DBI->connect(
'DBI:Pg:dbname=' . $settings->{'db'} . ';host=' . $settings->{'host'},
$settings->{'user'},
$settings->{'passwd'},
{
RaiseError => 1,
ShowErrorStatement => 0,
AutoCommit => 0
}
) or die DBI->errstr;
但是我的 Perl 模块中留下了宝贵的登录凭据(是的,我更改了它们)。目前,我使用psql
以交互方式发出查询。为了省去记住我的用户名/密码的麻烦,我将凭据放在权限为 600 的文件 (~/.pgpass) 中。文件如下所示:
# host:port:database:user:passwd
myhost:5432:mydb:myuser:mypasswd
如何安全地使用此文件 ( "$ENV{HOME}/.pgpass"
) 和DBI
模块来隐藏我的凭据?可以做到吗?什么是最佳实践?