Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
好的,所以我们有mongodump工具,它有 --password 选项。一切都很好,除了这个普通密码在 ps 输出中对每个人都是可见的。
我们的数据库具有简单的用户/密码身份验证。
我发现唯一可以工作的就是这样做
echo secretpwd | mongodump --username backup --oplog
ps中没有密码痕迹,仍然可以使用。
有没有更好的办法?
从文档:
在 3.0.2 版更改: 如果您希望 mongodump 提示用户输入密码,请传递 --username 选项而不传递 --password 或指定一个空字符串作为 --password 值,如 --password "" 。
似乎您正在做的是推荐的方式。
此外,这可以进一步帮助:
如果秘密在执行之间没有改变,请使用一个特殊的配置文件,“.appsecrets”。将文件的权限设置为所有者只读。在文件中为密钥设置一个环境变量。该文件需要位于运行命令的用户的主目录中。
旧帖子,但看起来最近版本的mongodumpdo 明确支持从标准输入读取密码。我在文档中没有看到任何关于它的内容,但是当我使用与 OP 中的命令类似的命令时,会mongodump生成如下输出:
mongodump
reading password from standard input
我不确定它是否比在 OP 中使用 echo 更好,但我将密码存储在一个文件中,然后像这样使用它:mongodb --username backup < /path/to/password.txt
mongodb --username backup < /path/to/password.txt