一、权限列表
Read:允许用户读取指定数据库
readWrite :允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
二、认证机制:
MONGODB-CR SCRAM-SHA-1
默认认证方式:SCRAM-SHA-1
三、创建
1、首先启动服务以主服务器方式启动
mongod -master --auth --port 27017 --dbpath D:\software\MongoDB\mongo
//创建超级管理员,操作其他users
db.createUser(
{
user: "root",
pwd: "root",
roles: [ { role: "root", db: "admin" } ]
}
)
2、然后以主服务器方式启动、带访问控制的 Mongodb
用户认证:root用户才可以赋予其他用户权限
use admin;
db.auth("root","root")
例如:需要一个所有库的read权限,用户adminUser/adminPass
use admin;
db.createUser(
{
user: "adminUser",
pwd: "adminPass",
roles: [ { role: "readAnyDatabase", db: "admin" }
]
}
)
更新adminUser用户权限,添加了local库的read权限
db.updateUser( "adminUser",
{
roles: [ { role: "readAnyDatabase", db: "admin" },
{role:"read",db:"local"}
]
}
)
四、测试
直接使用admin库进行验证
use admin;
db.auth("adminUser","adminPass");