pg_dumpall 需要啥才能在没有密码的情况下工作?

Posted

技术标签:

【中文标题】pg_dumpall 需要啥才能在没有密码的情况下工作?【英文标题】:What do I need for pg_dumpall to work without a password?pg_dumpall 需要什么才能在没有密码的情况下工作? 【发布时间】:2013-10-17 10:55:41 【问题描述】:

所以,我一直在努力设置pg_dumpall,但如果不输入密码,我无法让它工作。

我试过了:

How to pass in password to pg_dump?

然后跟着到这里:

http://www.postgresql.org/docs/8.4/static/libpq-pgpass.html

仍然没有运气。

我的弦和反应:

pg_dumpall -U user > /path/to_my/folder/test2.sql 
Password: 
Password: 
Password: 
Password: 
Password: 
Password: 
Password: 
Password: 
Password: 
Password: 

(当我让它在没有密码的情况下工作时,我会将它变成一个 bash 脚本)

我尝试使用-w,但除非有密码,否则它不会转储。我也将该 .pgpass 文件放在我的主目录中,并尝试将它们移动到其他用户的主目录。

也许我只是没有把我的文件做对,或者我不知道它可能在错误的地方,但这里是:

*:*:*:user:password

任何帮助都会很棒。 谢谢

【问题讨论】:

您是否看到有关文件权限的评论(您链接到的手册中的最后一段)。您也可以尝试使用 PGPASSWORD 环境变量。 是的,我做到了。我已将权限更改为 600,但我不确定 PGPASSWORD 环境变量在哪里。我查看了/etc//var/ 中的ppostgres 文件 这通常在您的操作系统用户的.bashrc.profile“登录脚本”中设置。与您设置 PATH 或其他环境变量的位置相同。 我也没有看到 你必须添加那些脚本。您可能想退后一步,了解环境变量在 Linux 中的工作原理。 【参考方案1】:

我不确定 PGPASSWORD 环境变量在哪里

默认情况下从不设置。

但无论如何,像这样在本地使用它可能更简单:

PGPASSWORD=yourpassword pg_dumpall -U user > /path/to_my/folder/test2.sql 

这样做,变量只会在转储期间存在。


编辑关于这种技术的安全性:

@Peter's comment 大概与 postgres 手册中的这个警告有关:

出于安全原因,不建议使用此环境变量,因为 一些操作系统允许非root用户查看进程环境 通过 ps 变量

但是一些操作系统非常模糊,环顾四周似乎没有人认真相信现代操作系统有任何这样的缺陷。

security.SE 涵盖了我认为有用的相关问答中的主题:

Is passing sensitive data through the process environment secure?

environment variable accessibility in Linux

我个人对此很满意,可以绕过 postgres 安全警告。但这不应该阻止任何人对自己的操作系统进行自己的研究,特别是如果它是异国情调或过时的。

【讨论】:

这将允许任何登录系统的人看到您的密码。 顺便说一句:还有PGPASSFILE,它应该指向一个包含密码的文件。从ps 可以看到文件位置,但看不到它的内容(给定适当的权限):postgresql.org/docs/9.3/static/libpq-envars.html 请注意,此命令将最终出现在您的命令历史记录中。如果你想避免这种情况,请在前面加上一个空格。

以上是关于pg_dumpall 需要啥才能在没有密码的情况下工作?的主要内容,如果未能解决你的问题,请参考以下文章

重置路由器后还需要设置啥才能正常使用?

设计需要密码才能进行编辑

苹果证书,有啥方法可以在没有代理的情况下提交给 iTunes?

我需要啥凭据才能通过 Api 连接到 Workday

mariadb怎么设置密码,度娘的方法都没有效果,请大神看看问题出在哪,要用啥命令行语句才能设置

文件删除不了,说是您需要来自SYSTEM的权限才能对文件更改,啥情况?