温馨提示×

centos mongodb如何设置权限

小樊
41
2026-09-21 03:51:36
栏目: 云计算

在 CentOS 上给 MongoDB 设置权限,通常分为 系统层面权限 和 MongoDB 数据库层面权限 两部分。下面按常见场景一步步说明。


一、MongoDB 数据库层面权限(最重要)

1. 修改 MongoDB 配置文件

编辑配置文件(常见路径):

sudo vi /etc/mongod.conf

确保有以下内容(启用鉴权):

security:
  authorization: enabled

保存后重启 MongoDB:

sudo systemctl restart mongod

2. 创建管理员用户

先用无密码方式登录:

mongo

切换到 admin 库并创建管理员:

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

3. 创建普通数据库用户

例如给 testdb 创建读写用户:

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

常用角色说明:

  • read:只读
  • readWrite:读写
  • dbAdmin:数据库管理
  • root:超级管理员

4. 使用账号登录

mongo -u testuser -p TestPassword --authenticationDatabase testdb

二、CentOS 系统层面权限(安全加固)

1. 禁止外网直接访问

在 /etc/mongod.conf 中:

net:
  bindIp: 127.0.0.1

如需内网访问:

bindIp: 127.0.0.1,192.168.1.100

重启:

sudo systemctl restart mongod

2. 使用防火墙限制端口

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

或仅允许指定 IP:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port="27017" protocol="tcp" accept'
sudo firewall-cmd --reload

3. 文件与目录权限

MongoDB 数据目录默认:

/var/lib/mongo
/var/log/mongodb

确保属主正确:

sudo chown -R mongod:mongod /var/lib/mongo
sudo chown -R mongod:mongod /var/log/mongodb

三、常见问题

1. 忘记管理员密码

  • 临时关闭鉴权
  • 登录后修改用户密码
use admin
db.changeUserPassword("root", "NewPassword")

2. 登录提示未授权

确认:

  • 使用了 --authenticationDatabase
  • 用户角色对应正确的数据库

如果你能提供:

  • MongoDB 版本
  • 是否集群
  • 是否云服务器

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

0 踩