mongodb 权限表格
Mongodb用户权限说明 |
用户管理校色 | 角色 | 说明 |
Read | 允许用户读取指定数据库 |
readWrite | 允许用户读写指定数据库 |
dbAdmin | 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile |
userAdmin | 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 |
dbOwner | 允许在当前DB中执行任意操作 |
readAnyDatabase | 赋予用户所有数据库的读权限,只在admin数据库中可用 |
readWriteAnyDatabase | 赋予用户所有数据库的读写权限,只在admin数据库中可用 |
userAdminAnyDatabase | 赋予用户所有数据库管理User的权限,只在admin数据库中可用 |
dbAdminAnyDatabase | 赋予管理所有数据库的权限,只在admin数据库中可用 |
root | 超级账号,超级权限,只在admin数据库中可用 |
集群管理角色 |
clusterAdmin | 赋予管理集群的最高权限,只在admin数据库中可用 |
clusterManager | 赋予管理和监控集群的权限 |
clusterMonitor | 赋予监控集群的权限,对监控工具具有readonly的权限 |
hostManager | 赋予管理Server |
创建角色
- 查看数据库
show dbs - 进入数据库
use test - 查看当前数据库用户权限
show users创建用户语句
# 为用户 user 设置了密码 :123456789
# 赋予了用户 user 对 admin 数据库的 clusterAdmin, readAnyDatabase 的权限
# 赋予了用户 user 对 testDB 数据库的 readWrite 权限
db.createUser(
{
user:"user",
pwd:"123456789",
roles:[
{role:"clusterAdmin", db:"admin" },
{role:"readAnyDatabase",db:"admin" },
{role:"readWrite",db:"testDB" }
]
}
)
修改密码
db.changeUserPassword("user","changepass");
db.updateUser("user",{pwd:"changepass1"});
修改权限
- 将用户 user 对 testDB 数据库的操作权限由 readWrite 权限替换为 read
db.updateUser("user",{roles:[ {role:"read",db:"testDB"} ]})
删除用户
db.dropUser('user')