在Debian上设置MongoDB权限通常涉及几个步骤,包括安装MongoDB、配置MongoDB以启用身份验证和授权、创建用户以及配置防火墙规则。以下是详细步骤:
首先,确保你的Debian系统是最新的:
sudo apt update
sudo apt upgrade
然后,添加MongoDB官方GPG密钥:
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
创建一个列表文件来存储MongoDB源:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
更新包数据库并安装MongoDB:
sudo apt update
sudo apt install -y mongodb-org
编辑MongoDB配置文件 /etc/mongod.conf:
sudo nano /etc/mongod.conf
找到 security 部分并确保它如下所示:
security:
authorization: enabled
保存并关闭文件。
重启MongoDB服务以应用更改:
sudo systemctl restart mongod
连接到MongoDB shell:
mongo
在MongoDB shell中,创建一个管理员用户:
use admin
db.createUser({
user: "admin",
pwd: "your_password",
roles: ["root"]
})
退出MongoDB shell:
exit
再次连接到MongoDB shell:
mongo -u admin -p your_password --authenticationDatabase admin
创建一个新数据库用户(例如,为 mydatabase 数据库创建用户):
use mydatabase
db.createUser({
user: "myuser",
pwd: "myuser_password",
roles: [
{ role: "readWrite", db: "mydatabase" }
]
})
退出MongoDB shell:
exit
如果你使用的是UFW(Uncomplicated Firewall),确保允许MongoDB端口(默认是27017):
sudo ufw allow 27017
重新加载UFW规则:
sudo ufw reload
尝试使用新创建的用户连接到数据库:
mongo -u myuser -p myuser_password --authenticationDatabase mydatabase
如果一切配置正确,你应该能够成功连接到数据库。
通过以上步骤,你已经在Debian上成功设置了MongoDB的权限。