认证流程

创建管理员

use admin
db.createUser({
  user: "adminUser",
  pwd: "securePassword",
  roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})

启用授权

security:
  authorization: enabled

创建普通用户

use wzk_test1

db.createUser({
  user:"zhangsan",
  pwd:"123456",
  roles:[{role:"readWrite",db:"wzk_test1"}]
})

db.createUser({
  user:"lisi",
  pwd:"123456",
  roles:[{role:"read",db:"wzk_test1"}]
})

分片集群认证

  1. 关闭所有配置
  2. 生成秘钥:openssl rand -base64 756 > testKeyFile.file
  3. 配置秘钥文件
  4. 启动服务

最小化授权

管理员分权

  • 平台管理员:root
  • DB管理员:dbAdminAnyDatabase + userAdminAnyDatabase
  • 集群管理员:clusterAdmin

应用分权

  • 读写:readWrite@
  • 只读:read@

错误速查

错误解决动作
Authentication failed用URI指定authSource
not authorized on db补授所需动作
listDatabases被拒授readAnyDatabase