温馨提示×

Debian怎么设置MongoDB权限

小樊
49
2026-07-18 09:53:40
栏目: 云计算

Debian 上设置 MongoDB 权限,核心就是 启用认证(Authentication)创建用户和角色。下面按 生产环境推荐流程 一步一步来(适用于 MongoDB 4.x / 5.x / 6.x,Debian 10/11/12 通用)。


一、安装 MongoDB(如已安装可跳过)

sudo apt update
sudo apt install -y mongodb-org

启动服务:

sudo systemctl start mongod
sudo systemctl enable mongod

二、先不开启认证,创建管理员用户

1️⃣ 进入 MongoDB Shell

mongosh

(老版本可能是 mongo


2️⃣ 切换到 admin 数据库

use admin

3️⃣ 创建超级管理员(强烈建议)

db.createUser({
  user: "admin",
  pwd: "StrongPassword123",
  roles: [{ role: "root", db: "admin" }]
})

root 权限最高,适合管理 MongoDB

退出:

exit

三、启用 MongoDB 认证

1️⃣ 编辑配置文件

sudo nano /etc/mongod.conf

2️⃣ 找到并修改 security

security:
  authorization: enabled

⚠ 注意 YAML 格式,缩进必须是两个空格


3️⃣ 重启 MongoDB

sudo systemctl restart mongod

四、使用管理员登录测试

mongosh -u admin -p --authenticationDatabase admin

输入密码后登录成功即表示认证生效 ✅


五、为业务数据库创建普通用户(推荐)

假设你要用一个数据库 mydb

use mydb

创建读写用户

db.createUser({
  user: "myuser",
  pwd: "UserPassword456",
  roles: [{ role: "readWrite", db: "mydb" }]
})

常用角色说明

角色 说明
read 只读
readWrite 读写
dbAdmin 数据库管理
userAdmin 用户管理
root 超级管理员

六、连接字符串示例

mongosh "mongodb://myuser:UserPassword456@localhost:27017/mydb"

或应用连接:

mongodb://myuser:UserPassword456@localhost:27017/mydb?authSource=mydb

七、常见问题排查

❌ 登录失败

Authentication failed

✅ 检查:

  • 用户名 / 密码是否正确
  • --authenticationDatabase 是否匹配
  • 是否已启用 authorization: enabled

❌ 忘记管理员密码

  1. 停止 MongoDB
  2. 注释掉 authorization
  3. 重启
  4. 重新创建用户
  5. 再启用认证

八、安全加固建议(重要)

✅ 生产环境建议:

  • 不要使用默认端口
  • 绑定内网 IP:
net:
  bindIp: 127.0.0.1,192.168.x.x
  • 使用防火墙限制访问
  • 定期备份

如果你愿意,可以告诉我:

  • MongoDB 版本
  • 本地开发 还是 生产服务器
  • 是否需要 远程访问

我可以给你一份 完全适合你场景的 MongoDB 权限配置方案

0