1、拉取mongodb
docker pull mongo:4.4.13
2、运行docker安装mongodb
docker run -itd --name mongo -v /home/dockerdata/mongo/data:/data/db -p 27017:27017 mongo:4.4.13 --auth
3、进入mongdb
docker exec -it mongo mongo admin
4 超级用户角色
MongoDB 默认提供了一个 root 超级用户角色,当为一个用户分配 root 角色后,该用户将同时拥有刚才介绍的所有角色的权限,另外还有 clussterAdmin、restore、backup 的角色权限。
root 角色,创建示例:
use admin
db.createUser({user: "root",pwd: "admin123",roles: [{role: "root", db: "admin"}]})
登录对应的库
db.auth('root','admin123')
4、创建自己的库
use interfaceLog
5、新建库后,新建用户,并且给自己的用户授权
db.createUser({user: "test", pwd: "Huicai0622", roles: [{role: "readWrite", db: "interfaceLog"}]});
6、登录用户
db.auth("test","Huicai0622")
7、新加集合,尽量和自己的库相对应
db.createCollection('sysOperLog')
db.createCollection('loginLog')
然后就Ok了
可能会使用的命令:
登录后查看当前用户的权限:db.grantRolesToUser()
给某个用户授予interfaceLog库的权限:db.grantRolesToUser("test", [{role:"userAdminAnyDatabase", db: "interfaceLog"}])
- 权限说明
权限 说明
read 允许用户读取指定数据库
readWrite 允许用户读写指定数据库
dbAdmin 允许用户在指定数据库中执行管理函数,如索引创建、删除、查看统计或访问system.profile
userAdmin 允许用户向system.users集合写入,可以在指定数据库中创建、删除和管理用户
clusterAdmin 必须在admin数据库中定义,赋予用户所有分片和复制集相关函数的管理权限
readAnyDatabase 必须在admin数据库中定义,赋予用户所有数据库的读权限
readWriteAnyDatabase 必须在admin数据库中定义,赋予用户所有数据库的读写权限
userAdminAnyDatabase 必须在admin数据库中定义,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase 必须在admin数据库中定义,赋予用户所有数据库的dbAdmin权限
root 必须在admin数据库中定义,超级账号,超级权限