Mongo身份验证

10

我已经搭建了两台服务器s1和s2。s1上运行着一个web服务器,而s2上则是我的mongodb数据库运行的地方。为了安全起见,我对mongo实例进行了身份验证。但是当我尝试从s1连接到s2上的mongo实例时,尝试进行身份验证时会出现错误。

如果我使用:

mongo DB --host HOST --port PORT -u USER -p PASSWORD 
--authenticationDatabase DB --authenticationMechanism SCRAM-SHA-1

我遇到了这个错误:

Error: 2 SASL authentication support not compiled into client library.
at src/mongo/shell/db.js:228
exception: login failed

如果我使用:

mongo DB --host HOST --port PORT -u USER -p PASSWORD 
--authenticationDatabase DB

我遇到了以下错误:

Error: 18 { ok: 0.0, errmsg: "Challenge-response authentication using 
getnonce and authenticate commands is disabled.", code: 2 } at 
src/mongo/shell/db.js:228
exception: login failed

如果我使用:

mongo DB --host HOST --port PORT

我成功登录后需要使用db.auth才能进行任何操作,但是我遇到了这个错误:

Error: 18 { ok: 0.0, errmsg: "Challenge-response authentication using 
getnonce and authenticate commands is disabled.", code: 2 }

我不知道为什么我进不去。有人能帮忙吗?


你使用的Mongo服务器版本是什么?我猜是3.0.X?那么SCRAM-SHA-1默认是激活的,你的客户端也需要支持它。 - Finch_Powers
3个回答

3
问题出在mongo客户端版本不正确。 使用以下命令检查版本:
mongo --version

我在登录https://mlab.com/的mongodb时遇到了问题

以下方法解决了我的问题,我使用的是Ubuntu xenial系统

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
sudo apt-get update
sudo apt-get install mongodb-org

0

从这个错误:

Error: 2 SASL authentication support not compiled into client library.

这也适用于其他错误,我认为您的客户端库不兼容。比较版本,如有需要请升级。


0
  • 你尝试过指定端口和数据库后跟主机吗? 尝试:mongo host:port/bbdd -u XXX -p

  • 你启用了TLS / SSL吗?

  • 也许Mongo配置为仅接受来自本地主机的连接?

敬礼


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接