- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用逻辑复制。我做了如下订阅。
=# CREATE SUBSCRIPTION mysub CONNECTION 'host=xxx.xxx.xxx.xxx port=5432
user=postgres dbname=mydb password=<password>' PUBLICATION mypub;
NOTICE: created replication slot "mysub" on publisher
CREATE SUBSCRIPTION
但我想知道我是否可以使用 .pgpass 文件来提供密码。当然,我试过了。但它失败了,如下所示。
=# CREATE SUBSCRIPTION mysub CONNECTION 'host=xxx.xxx.xxx.xxx port=5432
user=postgres dbname=mydb' PUBLICATION mypub;
ERROR: could not connect to the publisher: fe_sendauth: no password supplied
[我的.pgpass]
localhost:5432:postgres:postgres:<password>
localhost:5432:mydb:postgres:<password>
xxx.xxx.xxx.xxx:5432:mydb:postgres:<password>
这个 .pgpass 文件适用于 pgAgent。
我可以使用 .pgpass 文件进行逻辑复制吗?或者我应该在 CREATE 语句中写下我的密码吗?如果在 CREATE 命令中写入密码是唯一的答案,那么它安全吗?
最佳答案
https://www.postgresql.org/docs/10/static/sql-createsubscription.html
CONNECTION 'conninfo' The connection string to the publisher. For details see
https://www.postgresql.org/docs/10/static/libpq-connect.html#LIBPQ-CONNSTRING
passfile
Specifies the name of the file used to store passwords (see Section 33.15). Defaults to ~/.pgpass
所以是的 - 它应该有效。让我们模拟一下。首先我特意用了bad passfile看看有没有反射(reflect)error:
t=# CREATE SUBSCRIPTION mysub CONNECTION 'host=localhost port=5433 passfile=/tmp/p user=vao dbname=t' PUBLICATION mypub;
ERROR: could not connect to the publisher: fe_sendauth: no password supplied
不,不是,但检查日志确实:
-bash-4.2$ tail /pg/d10/log/postgresql-Tue.log | grep WARN | tail -n 1
WARNING: password file "/tmp/p" has group or world access; permissions should be u=rw (0600) or less
好的,尝试使用默认值:
t=# CREATE SUBSCRIPTION mysub CONNECTION 'host=localhost port=5433 user=vao dbname=t' PUBLICATION mypub;
ERROR: could not connect to the publisher: fe_sendauth: no password supplied
而且这次连警告都没有!所以检查 chmod:
-bash-4.2$ ll ~/.pgpass
-r-------- 1 postgres postgres 1227 May 15 15:00 /home/vao/.pgpass
看起来不错,但是啊哈 - 此连接没有线路,因为下面要求输入密码:
-bash-4.2$ psql -h localhost -p 5433 -U vao t
Password for user vao:
所以:
echo '*:*:*:vao:blah' > ~/.pgpass
-bash-4.2$ psql -h localhost -p 5433 -U vao t
psql: FATAL: password authentication failed for user "vao"
password retrieved from file "/var/lib/pgsql93/.pgpass"
啊哈 - 现在它使用了它,所以回到 SQL:
t=# CREATE SUBSCRIPTION mysub CONNECTION 'host=localhost port=5433 user=vao dbname=t' PUBLICATION mypub;
ERROR: could not connect to the publisher: FATAL: password authentication failed for user "vao"
password retrieved from file "/var/lib/pgsql93/.pgpass"
是的,您可以使用指定的和默认的 pgpassword 文件进行逻辑复制订阅
关于sql - 我可以在逻辑复制中使用 .pgpass 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50236286/
( 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 服务器已正确设置密码验证,并且我有一个本地
我是一名优秀的程序员,十分优秀!