配置 MongoDB 身份验证#

默认情况下,MongoDB 不要求用户名或密码即可访问或修改数据库。Anaconda 建议启用和配置强制身份验证。

  1. 打开 MongoDB shell

    mongo
    
  2. 仓库需要对数据库 binstar 具有读/写访问权限。在 MongoDB shell 中输入以下命令以创建管理用户和服务用户

    use admin
    
  3. 创建管理用户以管理数据库用户

    db.createUser({user:'siteUserAdmin', pwd: '<secure password #1>', roles:['userAdminAnyDatabase']})
    
  4. 以该用户身份授权以验证密码

    db.auth('siteUserAdmin', '<secure password #1>')
    
  5. 为仓库创建服务用户

    db.createUser({user:'anaconda', pwd: '<secure password #2>', roles:[{db:'binstar', role:'readWrite'}]})
    
  6. 在 MongoDB 中启用强制身份验证

    • 如果您使用的是旧版 MongoDB 配置文件格式,请将 auth 键添加到 /etc/mongod.conf

      auth=true
      
    • 如果您使用的是当前 MongoDB 配置文件格式,请将 security.authorization 键添加到 /etc/mongod.conf

      security:
          authorization: enabled
      
  7. 重启 MongoDB 以重新加载配置

    sudo service mongod restart
    
  8. 编辑仓库配置文件,并将 MONGO_URL 参数设置为 mongodb://<username>:<password>@<hostname>

    编辑配置文件后,重启仓库以使更改生效。

  9. 编辑仓库配置文件,并将 MONGO_URL 参数设置为 mongodb://<username>:<password>@<hostname>

    编辑配置文件后,重启仓库以使更改生效。

注意:有关 MongoDB 身份验证和授权的更多信息,请参阅 https://docs.mongodb.com/v2.6/core/authentication/https://docs.mongodb.com/v2.6/core/authorization/