温馨提示×

debian mongodb权限如何配置

小樊
52
2026-09-11 08:59:47
栏目: 云计算

在 Debian 上配置 MongoDB 的权限,通常包括 启用鉴权(authentication)、创建管理员和用户、以及 配置角色(roles)。下面按步骤说明(以 MongoDB 5.x/6.x 为例,使用 mongod.conf)。


一、修改 MongoDB 配置文件启用权限

编辑配置文件(通常位置):

sudo nano /etc/mongod.conf

在文件中找到或添加 security 配置:

security:
  authorization: enabled

保存后重启 MongoDB:

sudo systemctl restart mongod

⚠️ 重启前,先创建管理员账号,否则可能无法登录。


二、先以无鉴权方式创建管理员(推荐做法)

如果已经启用了 authorization: enabled,但还没有用户,可临时关闭鉴权:

sudo systemctl stop mongod
sudo mongod --config /etc/mongod.conf --noauth

然后另开一个终端:

mongo

创建管理员用户:

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

退出 MongoDB,停止临时进程,重新正常启动:

sudo systemctl start mongod

三、使用管理员登录

mongo -u admin -p --authenticationDatabase admin

四、为具体应用创建数据库用户

例如创建 appdb 的读写用户:

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

应用连接示例:

mongo -u appuser -p --authenticationDatabase appdb

五、常用角色说明

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

六、Debian 防火墙与监听(安全补充)

  1. 限制监听 IP
net:
  bindIp: 127.0.0.1

如需远程:

bindIp: 0.0.0.0
  1. 防火墙
sudo ufw allow from 192.168.1.0/24 to any port 27017

七、验证权限是否生效

show users

或尝试无用户名登录:

mongo

应提示未授权错误。


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

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

我可以给你一份 可直接用的 mongod.conf 示例。

0 踩