【发布时间】:2016-05-30 17:33:40
【问题描述】:
我无法让基本的 Mongo 安全性在我的 ubuntu 14.04 实例上工作。我安装了 Mongo 3.2 我的 /etc/mongod.conf 文件没有身份验证,因此当通过 sudo service mongod start (或启动时)启动 mongo 时,我可以从 mongo 控制台编辑安全信息。我之前有可能通过执行 db.system.version.remove({}) 和 db.system.version.insert({ "_id" : "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 实例并关闭了身份验证):
use admin
db.auth(siteUserAdmin, "PASSWORD")
这返回了 1 个成功,到目前为止一切顺利,看起来用户正在工作。接下来,我以尝试启用安全性的两种方式之一停止启动 mongod。一种是编辑 /etc/mongod.conf 文件以包含授权:在 #security 部分下启用。然后 sudo service mongod start 将不起作用(虽然它说正在运行,但随后的 sudo service 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 控制台,然后我输入 use admin,这切换到 db admin 成功,然后我再次尝试:
db.auth(siteUserAdmin, "PASSWORD")
这是我的问题/问题,现在我得到一个 0,错误:身份验证失败。我尝试了许多不值得一提的事情,似乎无法进行身份验证,请原谅我认为额外情况可能与该问题有关的长问题,任何想法我做错了什么?
【问题讨论】: