温馨提示×

如何设置mongodb权限debian

小樊
33
2026-09-26 15:41:30
栏目: 云计算

下面以 Debian(如 Debian 11 / 12) 为例,说明如何为 MongoDB 设置用户权限(启用鉴权)。


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

sudo apt update
sudo apt install -y mongodb-org

启动服务:

sudo systemctl enable mongod
sudo systemctl start mongod

二、默认状态(无权限)

MongoDB 默认 不开启鉴权,本地可直接连接:

mongo

或(新版本):

mongosh

⚠️ 生产环境必须先创建管理员用户。


三、创建管理员用户

进入 MongoDB:

mongosh

切换到 admin 库:

use admin

创建超级管理员:

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

退出:

exit

四、开启 MongoDB 鉴权

编辑配置文件:

sudo nano /etc/mongod.conf

找到 security 部分,修改为:

security:
  authorization: enabled

若没有该段,直接添加即可。

重启 MongoDB:

sudo systemctl restart mongod

五、使用管理员登录

mongosh -u admin -p --authenticationDatabase admin

六、为应用创建数据库用户(示例)

假设应用使用 mydb:

use mydb

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

应用连接字符串示例:

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

七、常用角色说明

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

八、防火墙建议(可选)

只允许本地或指定 IP:

sudo ufw allow from 192.168.1.0/24 to any port 27017

九、常见问题

1. 忘记管理员密码

  • 临时关闭鉴权
  • 用 admin 登录改密码
  • 再开启鉴权

2. 连接报 unauthorized

  • 检查 --authenticationDatabase
  • 用户是否建在正确库

如果你需要:

  • Docker 中 MongoDB 权限设置
  • 副本集鉴权
  • Spring / Node / Python 连接示例

可以直接告诉我。

0 踩