【问题标题】:Mongo 3.2 SCRAM-SHA-1 Authentication IssuesMongo 3.2 SCRAM-SHA-1 身份验证问题
【发布时间】: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,错误:身份验证失败。我尝试了许多不值得一提的事情,似乎无法进行身份验证,请原谅我认为额外情况可能与该问题有关的长问题,任何想法我做错了什么?

【问题讨论】:

    标签: mongodb security


    【解决方案1】:

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

    #security:
      authorization: enabled
    

    这不会通过 sudo service mongod start 启动。更新到以下内容(即删除安全部分的注释)修复了它:

    security:
      authorization: enabled
    

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

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

    【讨论】:

      猜你喜欢
      • 2015-12-20
      • 2015-10-02
      • 2021-06-09
      • 2016-10-15
      • 2022-01-19
      • 1970-01-01
      相关资源
      最近更新 更多