在配置权限前,需先安装MongoDB。以Debian Bullseye(11)及以上版本为例,步骤如下:
sudo apt update && sudo apt upgrade -ywget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.listsudo apt update && sudo apt install -y mongodb-orgsudo systemctl start mongod && sudo systemctl enable mongod认证是权限管理的基础,需通过配置文件开启:
sudo nano /etc/mongod.confsecurity section,添加或修改以下内容:security:
authorization: enabled
sudo systemctl restart mongod管理员用户用于管理所有数据库及用户权限,需在admin数据库中创建:
mongoadmin数据库:use adminroot角色为例,拥有最高权限):db.createUser({
user: "admin",
pwd: "YourStrongAdminPassword", // 替换为强密码
roles: ["root"] // root角色拥有所有数据库的管理权限
})
exit根据业务需求,为特定数据库创建用户并分配最小必要权限:
mongo -u admin -p YourStrongAdminPassword --authenticationDatabase adminmydatabase):use mydatabasereadWrite+dbAdmin组合为例,满足读写及数据库管理需求):db.createUser({
user: "dbUser",
pwd: "YourUserPassword", // 替换为用户密码
roles: [
{ role: "readWrite", db: "mydatabase" }, // 读写权限
{ role: "dbAdmin", db: "mydatabase" } // 数据库管理权限(如创建索引)
]
})
exit为增强安全性,可限制仅允许特定IP连接MongoDB:
sudo nano /etc/mongod.confnet section添加bindIp和ipWhitelist:net:
bindIp: 127.0.0.1,192.168.1.100 # 绑定本地IP及允许的远程IP
ipWhitelist:
- 127.0.0.1 # 本地访问
- 192.168.1.100 # 允许的远程IP(替换为实际IP)
sudo systemctl restart mongod通过实际操作确认用户权限是否生效:
mongo -u dbUser -p YourUserPassword --authenticationDatabase mydatabaseuse mydatabasedb.testCollection.insertOne({ name: "PermissionTest" })
authorization: enabled,避免未授权访问。read角色,无需写入)。auditLog配置)跟踪用户操作,及时发现异常。