Mongo 3.2 SCRAM-SHA-1身份验证问题

时间:2016-02-18 13:55:05

标签: mongodb security

我无法在我的ubuntu 14.04实例上使用基本的Mongo安全性。我安装了Mongo 3.2我的/etc/mongod.conf文件没有auth,所以当通过sudo service mongod start(或启动)启动mongo时,我可以编辑mongo控制台的安全信息。我之前有机会通过执行db.system.version.remove({}),然后是db.system.version.insert({" _id":&#)来搞砸我的auth系统。 34; authSchema"," currentVersion":3}),为了解决这个问题(或者只是安全),我删除了所有用户并按https://docs.mongodb.org/v3.0/release-notes/3.0-scram/#upgrade-scram-scenarios运行了以下内容。

db.adminCommand({authSchemaUpgrade: 1});

结果没问题。然后我创建了我的管理员用户,如下所示:

use admin
db.createUser( { user: "siteUserAdmin", pwd: "PASSWORD", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )

这返回了创建的用户的结果。然后我通过执行以下操作测试它(仍然使用当前的mongod实例关闭auth):

use admin
db.auth(siteUserAdmin, "PASSWORD")

这返回了1次成功,到目前为止很好,看起来像用户正在工作。接下来,我以两种方式之一停止启动mongod以尝试启用安全性。一个是编辑/etc/mongod.conf文件以包含授权:在#security部分下启用。 sudo服务mongod启动然后将无法工作(虽然它表示运行,后续的sudo服务mongod状态显示已停止,我无法连接shell)。因此,根据https://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/中的建议启动mongod作为守护程序服务,我获得了更好的结果:

mongod --fork --logpath /var/log/mongodb.log --auth --port 27017 --dbpath /var/lib/mongodb/admin

这可行,我可以访问Mongo控制台,然后输入使用admin,这会成功切换到db admin,然后我再次尝试:

db.auth(siteUserAdmin, "PASSWORD")

继承我的问题/问题,现在我得到0,错误:身份验证失败。我已经尝试过一些不值得一提的东西,似乎无法进行身份验证,请不要再考虑我认为额外的情况可能与问题有关的长期问题,任何想法我做错了什么?< / p>

1 个答案:

答案 0 :(得分:1)

好的,我在其中一个启动方法中解决了这个问题。在我的/etc/mongod.conf文件中,我有以下内容:

#security:
  authorization: enabled

这不会与sudo service mongod start一起启动。更新到以下(即删除安全部分的注释)修复它:

security:
  authorization: enabled

这也修复了授权,我可以成功运行:

use admin
db.auth(siteUserAdmin, "PASSWORD")