# 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

第三步重启 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 进程,然后使用账号重新登录即可。

# 参考

更新时间: 6/24/2020, 11:01:20 PM