MST

星途 面试题库

面试题:MongoDB副本集安全性配置之用户认证

在MongoDB副本集中,如何配置基于用户名和密码的用户认证机制?请描述主要步骤及相关命令。
37.0万 热度难度
数据库MongoDB

知识考点

AI 面试

面试题答案

一键面试
  1. 开启认证
    • 编辑MongoDB配置文件(通常是mongod.conf),添加或修改以下配置:
    security:
      authorization: enabled
    
    • 保存配置文件后,重启MongoDB服务,使配置生效。不同操作系统重启命令可能不同,例如在Ubuntu上可以使用sudo systemctl restart mongod
  2. 创建管理员用户
    • 连接到MongoDB副本集的主节点。假设副本集名为rs0,可以使用以下命令连接:
    mongo --host <primary - node - ip>:<port> - -eval "rs.slaveOk()"
    
    • 切换到admin数据库:
    use admin
    
    • 创建管理员用户,示例如下:
    db.createUser({
      user: "adminUser",
      pwd: "adminPassword",
      roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
    });
    
  3. 创建普通用户
    • 连接到MongoDB副本集主节点并切换到需要操作的数据库,例如testdb
    mongo --host <primary - node - ip>:<port> -u "adminUser" -p "adminPassword" --authenticationDatabase "admin"
    use testdb
    
    • 创建普通用户,示例如下:
    db.createUser({
      user: "testUser",
      pwd: "testPassword",
      roles: [ { role: "readWrite", db: "testdb" } ]
    });
    
  4. 客户端连接
    • 普通客户端连接时,需要带上用户名、密码和认证数据库信息,例如:
    mongo --host <node - ip>:<port> -u "testUser" -p "testPassword" --authenticationDatabase "testdb"