- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我可以使用以下方法成功创建到 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 模块中留下了有值(value)的登录凭据(是的,我更改了它们)。目前,我使用 psql
以交互方式发出查询。为了省去记住我的用户名/密码的麻烦,我将凭据放在一个权限为 600 的文件 (~/.pgpass) 中。该文件如下所示:
# host:port:database:user:passwd
myhost:5432:mydb:myuser:mypasswd
如何安全地使用此文件 ("$ENV{HOME}/.pgpass"
) 和 DBI
模块来隐藏我的凭据?可以吗?什么是最佳实践?
最佳答案
是的! 有更好的方法。
轻松在测试服务器和实时服务器之间切换。
~/.pgpass
中(用于 psql
和 pg_dump
)~/.pg_service.conf
(或/etc/pg_service.conf
)中的其他配置信息例如:
#!/usr/bin/perl -T
use strict;
use warnings;
use DBI;
my $dbh = DBI->connect
(
#"dbi:Pg:service=live",
"dbi:Pg:service=test",
undef,
undef,
{
AutoCommit => 0,
RaiseError => 1,
PrintError => 0
}
) or die DBI->errstr;
~/.pg_service.conf:
# http://www.postgresql.org/docs/9.2/static/libpq-pgservice.html
# /usr/local/share/postgresql/pg_service.conf.sample
# http://search.cpan.org/dist/DBD-Pg/Pg.pm
#
[test]
dbname=hotapp_test
user=hotusr_test
# localhost, no TCP nonsense needed:
host=/tmp
[live]
dbname=hotapp_live
user=hotusr_live
host=pgsql-server.example.org
~/.pgpass:
# http://www.postgresql.org/docs/9.2/static/libpq-pgpass.html
# hostname:port:database:username:password
localhost:5432:hotapp_test:hotusr_test:kq[O2Px7=g1
pgsql-server.example.org:5432:hotapp_live:hotusr_live:Unm£a7D(H
关于Perl - DBI 和 .pgpass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16579013/
( Derby 安 8) 我的 .pgpass 文件位于我的主文件夹 (admin) 我并使用文档中指示的正确格式 主机名:端口:数据库:用户名:密码 当显式放入 psql 命令行时,我放在那里的相同
如果我将 PGPASSFILE 设置为显式路径,如 /home/user/.pgpass 那么它工作正常,当以拥有该文件的用户身份登录时,我可以对 .pgpass.conf 中的条目使用 psql。
我正在使用逻辑复制。我做了如下订阅。 =# CREATE SUBSCRIPTION mysub CONNECTION 'host=xxx.xxx.xxx.xxx port=5432 user
我应该使用用户名和密码从 5 台远程机器上的 bash 脚本执行相同的 psql 命令。 我读到我们必须在 .pgpass 文件中传递凭据并在执行 psql 命令时使用 -w 选项。 但是如何使用相同
我可以使用以下方法成功创建到 Postgres 数据库的连接: my $settings = { host => 'myhost', db => 'mydb', user =>
我在我的主目录中创建了一个 .pgpass 文件,如下所示 localhost:5432:somedb:someuser:somepass 我正在使用一个 shell 脚本,它创建一个目录并将 som
我创建了一个 .pgpass 文件,它非常适合我的 psql 命令。 chris@ap2155489:~$ psql --host=my.example.com --port=12345 --user
我不知道我的设置有什么问题,但是当我尝试连接到数据库时 psql -h {db address} -U {username} -w {db name} 它工作正常,所以 .pgpass 文件没问题。但
我试过了 设置.pgpass的权限为0600 已确认 .pgpass 在我用户的主目录 (/home/brandon/.pgpass) 中 在 pg_dumpall 命令中使用 -w 确认.pgpas
通常 SQLalchemy 与 postgres 的连接是这样的: postgresql://scott:tiger@localhost/mydatabase 我想知道如何理想地在 flask 中将
你好,我正在使用 postgresql pg_dump 转储数据库,但是 postgresql 实例上有多个数据库,.pgpass 文件中可以有多个数据库密码吗。 pg_dump 命令:-h = ho
我的 .pgpass 文件位于 home/centos 目录中,具有 0600 权限。 10.43.11.123:5432:mydb:postgres:abcd@1234 (真实密码包含反斜杠字符。)
我试图让 root (Ubuntu 8.04) 在没有密码提示的情况下使用 psql 命令(用于脚本目的)。在 PostgreSQL 8.3 上一切正常,但我迁移到 PostgreSQL 8.4 并且
我正在运行一个使用 pg_dump 命令创建数据库转储的 cron 作业,如下所示: export PGPASSWORD="XXXXXXXX"; pg_dump -h localhost -U my_
我正在尝试从 python 脚本中远程连接到 psql 服务器。尽管我已经正确设置了 .pgpass,但当我运行脚本时,远程服务器会提示输入密码,在这种情况下,按回车键将导致它成功地从 .pgpass
我们正在尝试让我们的 Apache PHP 模块使用 PostgreSQL .pgpass 文件来查找数据库连接的密码。我们一直无法让它工作。是否有某种限制或错误阻止了它的工作? 这是我们所拥有的和我
所以我似乎无法在 Python 中使用 unixODBC/pyodbc 使 PostgreSQL 的“.pgpass”功能正常工作。 我有一个工作的 ~/.pgpass 文件,由命令行工具 psql
在使用 python 脚本连接到 postgresql 数据库时,我无法使用 .pgpass 文件(((我要连接的 python 脚本没有密码: conn = psycopg2.connect("db
我已经在 Windows 服务器环境中安装了我的 Postgresql 数据库。我想使用 Windows Task scheduler 安排每晚运行的作业,因此我需要运行以下命令而不要求输入密码: p
我正在尝试使用 JDBC Driver 从 Java 连接到 Postgresql 数据库并想使用 pgpass进行身份验证。 我的 Postgresql 服务器已正确设置密码验证,并且我有一个本地
我是一名优秀的程序员,十分优秀!