在 CentOS 上给 MongoDB 配置“权限”,通常包含两部分:
下面按实际运维步骤说明。
编辑 MongoDB 配置文件(通常是 /etc/mongod.conf):
vi /etc/mongod.conf
在文件中加入或确认:
security:
authorization: enabled
保存后重启 MongoDB:
systemctl restart mongod
如果还没开认证,可以直接进 mongo:
mongo
创建管理员用户:
use admin
db.createUser({
user: "admin",
pwd: "StrongPassword",
roles: [{ role: "root", db: "admin" }]
})
mongo -u admin -p --authenticationDatabase admin
例如给 testdb 建一个读写用户:
use testdb
db.createUser({
user: "testuser",
pwd: "TestPwd123",
roles: [{ role: "readWrite", db: "testdb" }]
})
mongo -u testuser -p --authenticationDatabase testdb
或 URI 方式:
mongodb://testuser:TestPwd123@localhost:27017/testdb
MongoDB 数据目录默认是 /var/lib/mongo:
chown -R mongod:mongod /var/lib/mongo
chmod 700 /var/lib/mongo
如果远程访问:
firewall-cmd --permanent --add-port=27017/tcp
firewall-cmd --reload
建议: 不要对公网开放 27017
如果启用了 SELinux 且 MongoDB 起不来:
查看状态:
getenforce
临时关闭测试:
setenforce 0
永久允许 MongoDB(推荐):
semanage port -a -t mongod_port_t -p tcp 27017
或修改:
setsebool -P mongod_can_network_connect on
| 角色 | 说明 |
|---|---|
| read | 只读 |
| readWrite | 读写 |
| dbAdmin | 数据库管理 |
| userAdmin | 用户管理 |
| root | 超级管理员 |
✅ 启用 authorization
✅ 不使用默认端口(可选)
✅ 禁止公网暴露
✅ 定期改密码
✅ 使用强密码
如果你愿意,可以告诉我:
我可以给你一套更精确的配置示例。