在 Ubuntu 上给 MongoDB 配置权限,通常包含以下几个步骤:启用鉴权 → 创建管理员用户 → 创建业务数据库和用户 → 使用账号连接。
下面以 Ubuntu 20.04 / 22.04 + MongoDB 5.x/6.x 为例说明。
sudo vim /etc/mongod.conf
security 部分,改为如下内容security:
authorization: enabled
如果原来没有 security: 这一段,直接加上即可。
sudo systemctl restart mongod
开启认证前或刚开启时,先连本地:
mongosh
(老版本可能是 mongo)
use admin
db.createUser({
user: "root",
pwd: "StrongPassword123",
roles: [ { role: "root", db: "admin" } ]
})
mongosh -u root -p StrongPassword123 --authenticationDatabase admin
假设你要用一个数据库 mydb:
use mydb
db.createUser({
user: "myuser",
pwd: "MyPass123",
roles: [
{ role: "readWrite", db: "mydb" }
]
})
| 角色 | 说明 |
|---|---|
| read | 只读 |
| readWrite | 读写 |
| dbAdmin | 数据库管理 |
| root | 超级管理员 |
| clusterAdmin | 集群管理 |
mongosh "mongodb://myuser:MyPass123@localhost:27017/mydb?authSource=mydb"
或在代码中:
mongodb://myuser:MyPass123@localhost:27017/mydb?authSource=mydb
authorizationadmin 库修改用户密码use admin
db.changeUserPassword("root", "NewPass123")
在 /etc/mongod.conf:
net:
bindIp: 0.0.0.0
⚠️ 公网暴露一定要加防火墙 + 强密码 + 最好是 SSH/内网
use admin
db.system.users.find().pretty()
如果你愿意,可以告诉我:
我可以给你更针对性的配置示例。