在CentOS上设置MongoDB的访问控制,可以按照以下步骤进行:
如果你还没有安装MongoDB,可以使用以下命令进行安装:
sudo yum install -y mongodb-org
安装完成后,启动MongoDB服务并设置开机自启动:
sudo systemctl start mongod
sudo systemctl enable mongod
编辑MongoDB的配置文件 /etc/mongod.conf
,找到 security
部分并启用访问控制:
security:
authorization: enabled
保存配置文件后,重启MongoDB服务以应用更改:
sudo systemctl restart mongod
连接到MongoDB shell:
mongo
在MongoDB shell中,创建一个管理员用户:
use admin
db.createUser({
user: "admin",
pwd: "yourPassword",
roles: ["root"]
})
连接到MongoDB shell并切换到你要创建用户的数据库(例如 mydatabase
):
mongo mydatabase
在MongoDB shell中,创建一个新用户并分配角色:
db.createUser({
user: "myuser",
pwd: "myPassword",
roles: [
{ role: "readWrite", db: "mydatabase" }
]
})
确保用户已经创建成功并且具有正确的权限:
db.auth("myuser", "myPassword")
db.runCommand({ connectionStatus: 1 })
确保防火墙允许MongoDB的默认端口(27017):
sudo firewall-cmd --permanent --zone=public --add-port=27017/tcp
sudo firewall-cmd --reload
为了进一步提高安全性,可以配置MongoDB使用SSL/TLS加密连接。这需要在MongoDB配置文件 /etc/mongod.conf
中添加以下内容:
net:
ssl:
mode: requireSSL
PEMKeyFile: /etc/ssl/mongodb.pem
CAFile: /etc/ssl/ca.pem
然后重启MongoDB服务:
sudo systemctl restart mongod
更新你的应用程序或MongoDB客户端连接字符串,以包含用户名和密码,并启用SSL/TLS(如果配置了):
mongodb://myuser:myPassword@localhost:27017/mydatabase?ssl=true
通过以上步骤,你可以在CentOS上成功设置MongoDB的访问控制,并确保数据库的安全性。