认证流程
创建管理员
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"}]
})
分片集群认证
- 关闭所有配置
- 生成秘钥:
openssl rand -base64 756 > testKeyFile.file
- 配置秘钥文件
- 启动服务
最小化授权
管理员分权
- 平台管理员:root
- DB管理员:dbAdminAnyDatabase + userAdminAnyDatabase
- 集群管理员:clusterAdmin
应用分权
错误速查
| 错误 | 解决动作 |
|---|
| Authentication failed | 用URI指定authSource |
| not authorized on db | 补授所需动作 |
| listDatabases被拒 | 授readAnyDatabase |