CentOS 上 MongoDB 权限管理实操指南
一 启用认证与基础网络配置
security:
authorization: enabled
net:
bindIp: 127.0.0.1
net:
bindIp: 127.0.0.1,192.168.1.10
sudo systemctl restart mongod
sudo firewall-cmd --permanent --zone=public --add-port=27017/tcp
sudo firewall-cmd --reload
以上步骤完成后,MongoDB 将要求身份认证,并仅监听指定地址。
二 创建管理员与数据库用户
mongo
use admin
db.createUser({
user: "admin",
pwd: "StrongPass!23",
roles: [{ role: "root", db: "admin" }]
})
use sales
db.createUser({
user: "sales_rw",
pwd: "SalesPass!45",
roles: [{ role: "readWrite", db: "sales" }]
})
mongo -u admin -p StrongPass!23 --authenticationDatabase admin
三 细粒度权限与自定义角色
use admin
db.createRole({
role: "ordersInsertFindUpdate",
privileges: [{
resource: { db: "sales", collection: "orders" },
actions: ["insert", "find", "update"]
}],
roles: []
})
use sales
db.grantRolesToUser("sales_rw", ["ordersInsertFindUpdate"])
use admin
db.revokeRolesFromUser("sales_rw", [{ role: "dbAdmin", db: "sales" }])
四 远程访问与连接字符串示例
net:
bindIp: 127.0.0.1,192.168.10.20
修改后重启服务:sudo systemctl restart mongod
mongo -u sales_rw -p SalesPass!45 --authenticationDatabase sales 192.168.10.20:27017/sales
mongodb://sales_rw:SalesPass!45@192.168.10.20:27017/sales?authSource=sales
以上要点涵盖远程访问配置与正确的认证库指定方式,避免因 authSource 错误导致登录失败。
五 运维与安全加固清单