温馨提示×

debian mongodb如何鉴权

小樊
53
2026-10-17 03:12:09
栏目: 云计算

在 Debian 上部署 MongoDB 后,默认是**不开启鉴权(auth)**的,任何本地连接都可以直接操作数据库。要启用鉴权,一般步骤如下:


一、安装 MongoDB(Debian)

以 MongoDB 6.x / 7.x 为例(使用官方源):

sudo apt update
sudo apt install -y mongodb-org
sudo systemctl enable mongod
sudo systemctl start mongod

二、首次无鉴权创建管理员用户

1. 连接 MongoDB

mongosh

2. 切换到 admin 库,创建管理员

use admin

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

退出:

quit()

三、开启鉴权(关键步骤)

编辑配置文件:

sudo vim /etc/mongod.conf

在文件中添加或修改:

security:
  authorization: enabled

注意 YAML 缩进(2 个空格)

重启 MongoDB:

sudo systemctl restart mongod

四、使用账号登录

方式一:命令行登录

mongosh -u admin -p --authenticationDatabase admin

方式二:连接后认证

use admin
db.auth("admin", "StrongPassword")

五、为业务库创建专用用户(推荐)

use mydb

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

应用连接串示例:

mongodb://appuser:AppPassword@localhost:27017/mydb

六、常见注意事项(Debian 特有)

1. 绑定 IP

如果远程访问,修改:

net:
  bindIp: 0.0.0.0

⚠️ 公网暴露务必配合防火墙 + 鉴权

2. 忘记管理员密码

  • 注释掉 authorization
  • 重启 mongod
  • 用本地无鉴权方式重置用户

3. 查看当前用户

use admin
db.getUsers()

七、最小安全建议

✅ 启用鉴权
✅ 不使用 root 账号连业务库
✅ 强密码
✅ 限制 bindIp
✅ 启用防火墙(ufw / iptables)


如果你需要:

  • Docker 版 MongoDB 鉴权
  • 副本集(Replica Set)鉴权
  • MongoDB + Spring Boot / Node.js 配置

可以继续问我。

0 踩