MongoDB Role-based Access Control¶
官方文档:https://www.mongodb.com/docs/manual/tutorial/change-own-password-and-custom-data/
在 mongosh
中,可以通过 db.createUser
创建用户。创建用户时,MongoDB 采用基于角色的访问控制
use admin
db.createUser({
user: "myadmin1",
pwd: passwordPrompt(),
roles: [
{ role: "readWrite", db: "config" },
"clusterAdmin"
]
});
其中,权限由数据库资源和在指定资源上的操作组成。其中,资源可以是数据库、集合、部分集合和集群;操作包括对资源的增删改查。常用的内置角色有:
角色 | 权限 |
---|---|
read |
读取指定数据库中的任何数据 |
readWrite |
read + 写指定数据库中任何数据,包括创建、重命名、删除集合 |
dbAdmin |
|
clusterAdmin |
|
userAdmin |
|
readAnyDatabase |
对除 config 和 local 之外的数据库拥有 read 权限 |
readWriteAnyDatabase |
对除 config 和 local 之外的数据库拥有 readWrite 权限 |
dbAdminAnyDatabase |
对除 config 和 local 之外的数据库拥有 dbAdmin 权限 |
userAdminAnyDatabase |
对除 config 和 local 之外的数据库拥有 userAdmin 权限 |
一般来说,内置角色已经足够,用户也可以通过 db.CreateRole()
创建自定义角色。