我如何在不显示密码的情况下登录mongo
shell?一切都说要么使用
mongo -u user -p password --authenticationDatabase admin
或者
mongo
> use admin;
> db.auth('user', 'password')
我不喜欢这两种方式。第一种会在 cmd 的历史记录中留下一条命令。第二种不在历史记录中,但仍会以纯文本形式显示在屏幕上。我尝试只指定一个用户,希望得到一个在我输入时不显示字符的密码提示,但这两种情况都会发生错误。
有没有一种方法可以登录 MongoDB,而不会将密码显示在屏幕上或将其存储在不安全的文件中(例如 .bat 或任何其他文件)?
答案1
这是目前开放的功能请求(截至 2.6)。如需投票/跟踪,请参阅服务器-3788。
我能想到的实现你目前要求的唯一方法是不使用用户/密码(即MONGODB CR 数据库) 完全没有。如果你改用X509 证书进行身份验证(2.6 版新增,需要启用 SSL 的版本),那么您将不再有纯文本显示的问题,并且您的实例总体上将更加安全。这就像用锤子敲核桃,但如果这是一项要求,那么在功能请求完成之前,它是唯一可用的实际选项。
答案2
您可以从命令行使用一种方法,这种方法不会回显您的密码:指定-p
或--password
参数而不提供密码。在这种情况下,系统将提示您输入密码。
例如:
# Short parameter form
mongo -u user -p --authenticationDatabase admin
# Long parameter form
mongo --username user --password --authenticationDatabase admin
shell 输出将类似于:
MongoDB shell version: 3.2.11
Enter password: %
我早在 MongoDB 2.4(2016 年 3 月达到使用寿命)时就对此进行了测试。