Content Table

MongoDB 账号密码登录

配置MongoDB 账号密码登录:

  1. 创建全局管理员
  2. 创建数据库用户
  3. 数据库用户登录

一、创建全局管理员

使用非安全模式启动 MongoDB,不需要登录,可以操作任何数据库:

  1. 启动 MongoDB: mongod --config /usr/local/etc/mongod.conf

  2. 进入 MongoDB 客户端: mongo

  3. 进入数据库 admin: use admin

  4. 创建管理员 admin:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    db.createUser(
    {
    user: "admin",
    pwd: "admin",
    roles: [{ role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase"]
    }
    )

    // 显示用户
    show users;

    // 更新用户密码 (忘记的时候,不需要授权登录,然后修改密码,再启动授权登录)
    // db.updateUser("admin", { pwd: "admin" });
  5. 退出 MongoDB 客户端: exit

  6. 退出非安全模式启动的 MongoDB

二、创建集合的用户

安全模式启动 MongoDB,登录全局的管理员的 admin,然后创建指定数据库的用户:

  1. 安全模式启动 MongoDB: mongod --auth --config /usr/local/etc/mongod.conf

  2. 进入 MongoDB 客户端: mongo

  3. 管理员登录:

    1. use admin
    2. db.auth("admin", "admin")
  4. 进入数据库 foo: use foo (不存在则会自动创建)

  5. 创建用户 bar:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    db.createUser(
    {
    user: "bar",
    pwd: "bar",
    roles: [
    { role: "dbAdmin", db: "foo" },
    { role: "readWrite", db: "foo" }
    ]
    }
    )
  6. 退出 MongoDB 客户端: exit

三、数据库用户登录

  1. 安全模式启动 MongoDB:

    • 方式一: mongod --auth --config /usr/local/etc/mongod.conf

    • 方式二: 配置文件中添加下面的配置,执行 mongod --config /usr/local/etc/mongod.conf 进行启动

      1
      2
      security:
      authorization: enabled
  2. 用户登录:

    • 方式一:
      1. 进入 MongoDB 客户端: mongo
      2. 进入数据库: use foo
      3. 用户登录: db.auth('bar', 'bar')
      4. 操作数据库
    • 方式二:
      1. 进入 MongoDB 客户端同时进行登录: mongo --port 27017 -u "bar" -p "bar" --authenticationDatabase "foo"
      2. 进入数据库: use foo
      3. 操作数据库