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')