MongoDB 创建用户

使用 createUser 方法在 MongoDB 中创建用户管理员。以下示例显示了如何完成此操作。

> db.createUser(
... { user: "Tastones", pwd : "password"
...	, roles : [{ role : "userAdminAnyDatabase"
...	, db: "admin"}]})

代码说明:

  1. 第一步是指定需要创建的 用户名密码
  2. 第二步是为用户分配角色。由于它需要是数据库管理员,在这种情况下我们已经分配了 userAdminAnyDatabase 角色。此角色允许用户拥有 MongoDB 中所有数据库的管理权限。
  3. db 参数指定 admin 数据库,它是 MongoDB 中的一个特殊 Meta 数据库,它保存该用户的信息。

如果命令执行成功,将显示以下输出:

输出:

> db.createUser(
... { user : "Guru99", pwd : "password" 
... , roles : [{ role: "userAdminAnyDatabase" 
... db: "admin"}]})
Successfully added user: { 
    "user" : "Guru99".
    "roles" : [
            {
                "role" : "userAdminAnyDatabase", 
                "db" : "admin"
            }
	]
}

输出显示创建了一个名为 Tastones 的用户,该用户拥有 MongoDB 中所有数据库的权限。

要创建将管理单个数据库的用户,我们可以使用上面提到的相同命令,但我们只需要使用 userAdmin 选项。

以下示例说明了如何完成此操作;

> db.createUser(
... { user: "Employeeadmin", pwd : "password"
...	, roles : [{ role : "userAdmin"
...	, db: "Employee"}]})

代码说明:

  1. 第一步是指定需要创建的 用户名密码
  2. 第二步是为用户分配一个角色,在这种情况下,因为需要将数据库管理员分配给 userAdmin 角色。此角色允许用户仅具有 db 选项中指定的数据库的管理权限。
  3. db 参数指定用户应具有管理权限的数据库。

如果命令执行成功,将显示以下输出:

输出:

> db.createUser(
... { user : "Employeeadmin", pwd : "password" 
... , roles : [{ role: "userAdmin" 
... db: "Employee"}]})
Successfully added user: { 
    "user" : "Employeeadmin".
    "roles" : [
            {
                "role" : "userAdmin", 
                "db" : "Employee"
            }
	]
}

输出显示已创建名为 Employeeadmin 的用户,该用户仅对 Employee 数据库具有权限。

管理用户

首先要了解你需要定义的角色。MongoDB 中提供了完整的角色列表。例如,有一个 read role,它只允许对数据库进行只读访问,然后有 readwrite 角色,它提供对数据库的读写访问权限,这意味着用户可以发出插入、删除和更新该数据库中集合的命令。

> db.createuser(
{
    user: "Mohan", 
    pwd: "password", 
    roles: [
    {
        role: "read" , db: "Marketing"}, 
        role: "readwrite" , db:"Sales"}
    }
    		]
})

上面的代码片段显示创建了一个名为 Mohan 的用户,并在多个数据库中为他分配了多个角色。在上面的示例中,他被赋予对 Marketing 数据库的只读权限和对 Sales 数据库的 readWrite 权限。