配置 MongoDB 身份验证

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

  1. 打开 MongoDB 外壳:

    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. 为 Repository 创建一个服务用户:

    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. 编辑 Repository 配置文件并将MONGO_URL参数设置为mongodb://<username>:<password>@<hostname>.

    编辑完配置文件后,重启 Repository 使更改生效。

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

    编辑完配置文件后,重启 Repository 使更改生效。

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