温馨提示×

centos mongodb配置权限怎么设

小樊
41
2026-10-23 10:12:14
栏目: 云计算

在 CentOS 上给 MongoDB 配置“权限”,通常包含两部分:

  1. MongoDB 自身的用户权限(账号、角色)
  2. CentOS 系统层面的权限(目录、端口、SELinux)

下面按实际运维步骤说明。


一、MongoDB 用户权限配置(重点)

1. 修改配置文件开启认证

编辑 MongoDB 配置文件(通常是 /etc/mongod.conf):

vi /etc/mongod.conf

在文件中加入或确认:

security:
  authorization: enabled

保存后重启 MongoDB:

systemctl restart mongod

2. 先以无认证方式创建管理员账号(首次)

如果还没开认证,可以直接进 mongo:

mongo

创建管理员用户:

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

3. 用管理员登录

mongo -u admin -p --authenticationDatabase admin

4. 给业务库创建普通用户

例如给 testdb 建一个读写用户:

use testdb
db.createUser({
  user: "testuser",
  pwd: "TestPwd123",
  roles: [{ role: "readWrite", db: "testdb" }]
})

5. 连接时指定用户

mongo -u testuser -p --authenticationDatabase testdb

或 URI 方式:

mongodb://testuser:TestPwd123@localhost:27017/testdb

二、CentOS 系统权限配置

1. 数据目录权限

MongoDB 数据目录默认是 /var/lib/mongo:

chown -R mongod:mongod /var/lib/mongo
chmod 700 /var/lib/mongo

2. 防火墙(Firewalld)

如果远程访问:

firewall-cmd --permanent --add-port=27017/tcp
firewall-cmd --reload

建议: 不要对公网开放 27017


3. SELinux(常见坑)

如果启用了 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
✅ 不使用默认端口(可选)
✅ 禁止公网暴露
✅ 定期改密码
✅ 使用强密码


如果你愿意,可以告诉我:

  • MongoDB 版本(4.x / 5.x / 6.x)
  • 是否 单机 / 副本集
  • 是否 内网 / 公网访问

我可以给你一套更精确的配置示例。

0 踩