如何在 MongoDB 中创建用户并添加角色
MongoDB 创建管理员用户
在 MongoDB 中创建用户管理员是通过使用 createUser 方法完成的。以下示例展示了如何实现这一点。
db.createUser( { user: "Guru99", pwd: "password", roles:[{role: "userAdminAnyDatabase" , db:"admin"}]})
代码解释
- 第一步是指定需要创建的“用户名”和“密码”。
- 第二步是为用户分配角色。由于需要成为数据库管理员,在这种情况下,我们为其分配了“userAdminAnyDatabase”角色。此角色允许用户拥有 MongoDB 中所有数据库的管理权限。
- db 参数指定了 admin 数据库,它是 MongoDB 中一个特殊的 Meta 数据库,用于保存该用户的信息。
如果命令执行成功,将显示以下输出
输出
输出显示已创建名为“Guru99”的用户,并且该用户拥有 MongoDB 中所有数据库的权限。
MongoDB 为单个数据库创建用户
要创建一个管理单个数据库的用户,我们可以使用与上述相同的命令,但只需要使用“userAdmin”选项。
以下示例展示了如何实现这一点;
db.createUser( { user: "Employeeadmin", pwd: "password", roles:[{role: "userAdmin" , db:"Employee"}]})
代码解释
- 第一步是指定需要创建的“用户名”和“密码”。
- 第二步是为用户分配角色,在本例中,由于需要成为数据库管理员,因此分配了“userAdmin”角色。此角色允许用户仅对 db 选项中指定的数据库拥有管理权限。
- db 参数指定了用户应拥有管理权限的数据库。
如果命令执行成功,将显示以下输出
输出
输出显示已创建名为“Employeeadmin”的用户,并且该用户仅对“Employee”数据库拥有权限。
用户管理
首先了解需要定义的角色。MongoDB 中有完整的角色列表。例如,“read role”只允许对数据库进行只读访问,“readwrite”角色则提供对数据库的读写访问权限,这意味着用户可以在该数据库的集合上执行 insert、delete 和 update 命令。
db.createUser( { user: "Mohan", pwd: "password", roles:[ { role: "read" , db:"Marketing"}, { role: "readWrite" , db:"Sales"} } ] })
上面的代码片段显示已创建名为 Mohan 的用户,并为他在多个数据库中分配了多个角色。在上面的示例中,他被授予了对“Marketing”数据库的只读权限,以及对“Sales”数据库的读写权限。