在 CentOS 上给 MongoDB 配置权限,通常分两种情况:
如果你说的是 CentOS 系统用户访问 MongoDB 文件权限:
MongoDB 默认数据目录一般是 /var/lib/mongo
chown -R mongod:mongod /var/lib/mongo
chmod -R 700 /var/lib/mongo
chown -R mongod:mongod /var/log/mongodb
chmod -R 755 /var/log/mongodb
MongoDB 通常以 mongod 用户运行(CentOS 安装包默认)
systemctl start mongod
编辑配置文件:
vi /etc/mongod.conf
添加或修改:
security:
authorization: enabled
重启 MongoDB:
systemctl restart mongod
先无密码登录:
mongo
use admin
db.createUser({
user: "root",
pwd: "StrongPassword",
roles: ["root"]
})
例如给 testdb 库权限:
use testdb
db.createUser({
user: "testuser",
pwd: "testpass",
roles: [
{ role: "readWrite", db: "testdb" }
]
})
mongo -u testuser -p testpass --authenticationDatabase testdb
| 角色 | 说明 |
|---|---|
| read | 只读 |
| readWrite | 读写 |
| dbAdmin | 数据库管理 |
| userAdmin | 用户管理 |
| root | 超级管理员 |
firewall-cmd --add-port=27017/tcp --permanent
firewall-cmd --reload
❌ not authorized on admin to execute command
✅ 没开 authorization 或用户角色不够
如果你能具体说:
我可以给你更精确的命令。