# MongoDB 账户权限配置
# 第一步创建超级管理用户
use admin
db.createUser({
user:'admin',
pwd:'123456',
roles:[{role:'root',db:'admin'}]
})
# 第二步修改 Mongodb 数据库配置文件
配置文件路径:C:\Program Files\MongoDB\Server\4.0\bin\mongod.cfg
修改配置
security:
authorization: enabled
# 第三步重启 mongodb
# 第四步用超级管理员账户连接数据库
mongo admin -u 用户名 -p 密码
mongo 192.168.1.200:27017/test -u user -p password
# 第五步给指定数据库创建角色
给相关数据库创建角色,创建的角色只能访问相应的数据库
use cms
db.createUser(
{
user: "cmsadmin",
pwd: "123456",
roles: [ { role: "dbOwner", db: "cms" } ]
}
)
# 常用的命令
show users; #查看当前库下的用户
db.dropUser("cmsadmin") #删除用户
db.updateUser( "admin",{pwd:"password"}); #修改用户密码
db.auth("admin","password"); #密码认证
# Mongodb 数据库角色
- 1.数据库用户角色:read、readWrite;
- 2.数据库管理角色:dbAdmin、dbOwner、userAdmin;
- 3.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
- 4.备份恢复角色:backup、restore;
- 5.所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 6.超级用户角色:root
# 问题解决
# An error occurred while loading navigation: command hostInfo requires authentication
首次创建 admin
账号后,用 admin
账号连接数据库时会出现上面的错误提示。解决方法:
终止正在运行的 mongodb compass
进程,然后使用账号重新登录即可。