在CentOS上限制MongoDB访问可以通过以下几种方法实现:
编辑MongoDB的配置文件/etc/mongod.conf,找到net部分,设置bindIp参数来限制允许访问的IP地址。例如,如果你只想允许本地访问,可以将bindIp设置为127.0.0.1:
net:
port: 27017
bindIp: 127.0.0.1
如果你想允许多个IP地址访问,可以用逗号分隔这些IP地址:
net:
port: 27017
bindIp: 127.0.0.1,192.168.1.100,192.168.1.101
修改配置文件后,重启MongoDB服务:
sudo systemctl restart mongod
如果你的CentOS服务器使用了防火墙(例如firewalld),你可以添加规则来限制访问MongoDB端口(默认为27017)。
例如,使用firewalld添加规则:
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="27017" accept'
sudo firewall-cmd --reload
这将允许IP地址为192.168.1.100的设备访问MongoDB端口。
在MongoDB中创建用户并设置访问权限,可以进一步限制对数据库的访问。首先,连接到MongoDB shell:
mongo
然后,在admin数据库中创建一个新用户,并为其分配角色和权限。例如,创建一个名为myUser的用户,允许其访问myDatabase数据库:
use admin
db.createUser({
user: "myUser",
pwd: "myPassword",
roles: [
{
role: "readWrite",
db: "myDatabase"
}
]
})
现在,使用新创建的用户myUser和密码myPassword连接到MongoDB:
mongo -u myUser -p myPassword --authenticationDatabase admin
这样,只有具有正确用户名和密码的用户才能访问MongoDB。
结合以上方法,你可以有效地限制CentOS上MongoDB的访问。