在 Debian 上配置 MongoDB 的权限,通常包括 启用鉴权(authentication)、创建管理员和用户、以及 配置角色(roles)。下面按步骤说明(以 MongoDB 5.x/6.x 为例,使用 mongod.conf)。
编辑配置文件(通常位置):
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 |
集群管理 |
net:
bindIp: 127.0.0.1
如需远程:
bindIp: 0.0.0.0
sudo ufw allow from 192.168.1.0/24 to any port 27017
show users
或尝试无用户名登录:
mongo
应提示未授权错误。
如果你愿意,可以告诉我:
我可以给你一份 可直接用的 mongod.conf 示例。