安全问题分析

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配置