安全问题分析
MongoDB默认安装时不启用身份验证,存在严重安全隐患。
用户管理操作
创建用户
use admin
db.createUser({
user: "admin",
pwd: "admin123",
roles: [{role: "root", db: "admin"}]
})
修改密码
db.changeUserPassword('admin', 'admin@123')
认证启动配置
在mongod.conf中配置:
security:
authorization: enabled
角色详解
数据库级别角色
- read: 读取指定数据库数据
- readWrite: 读写权限
- dbAdmin: 索引管理
- userAdmin: 用户账户管理
- dbOwner: 数据库完全控制权
跨数据库角色
- readAnyDatabase: 所有数据库读取权限
- readWriteAnyDatabase: 所有数据库读写权限
- userAdminAnyDatabase: 全局用户管理
集群管理角色
- clusterAdmin: 分片管理、副本集配置
- root: 超级权限
常见错误
| 错误 | 修复方法 |
|---|---|
| Authentication failed | 检查authSource参数 |
| not authorized on db | 补充对应库的角色权限 |
| 无法远程连接 | 检查bindIp配置 |