温馨提示×

Debian MongoDB怎么配置权限

小樊
38
2026-08-02 05:26:00
栏目: 云计算

下面以 Debian + MongoDB(以 6.x / 7.x 为例) 说明如何配置权限(用户认证)。如果你用的是老版本(4.x / 5.x),步骤也基本一致。


一、前提说明

  • MongoDB 默认不开启权限认证
  • 开启权限后,必须创建用户才能访问数据库
  • 推荐做法:
    1. 先创建管理员用户
    2. 再开启认证
    3. 重启 MongoDB

二、安装 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

找到并修改:

security:
  authorization: enabled

⚠️ 注意:

  • security: 前面不能有空格
  • authorization 缩进 2 个空格

保存后退出。


2️⃣ 重启 MongoDB

sudo systemctl restart mongod

五、使用账号登录 MongoDB

方式一:命令行登录

mongosh -u admin -p --authenticationDatabase admin

输入密码即可。


方式二:连接后认证

mongosh
use admin
db.auth("admin", "StrongPassword123")

六、为业务数据库创建用户(推荐)

假设你要用一个数据库 mydb

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

连接示例:

mongosh -u myuser -p --authenticationDatabase mydb

七、常用角色说明

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

八、检查是否开启权限

mongosh

如果没登录就执行命令报错:

not authorized on admin to execute command

✅ 说明权限已生效


九、Debian 防火墙(可选)

sudo ufw allow from 你的IP to any port 27017

十、常见问题

❌ 忘记管理员密码

  1. 修改 /etc/mongod.conf
  2. 注释 authorization
  3. 重启 MongoDB
  4. 重新创建用户

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

  • ✅ MongoDB 版本
  • ✅ 是否远程访问
  • ✅ 单节点 / 副本集

我可以给你更精确的配置方案

0