在CentOS上配置MongoDB的认证机制,可以按照以下步骤进行:
首先,确保你已经安装了MongoDB。如果还没有安装,可以使用以下命令进行安装:
sudo yum install -y mongodb-org
安装完成后,启动MongoDB服务:
sudo systemctl start mongod
编辑MongoDB的配置文件 /etc/mongod.conf,找到 security 部分并启用认证:
security:
authorization: enabled
使用 mongo shell 连接到MongoDB,并创建一个管理员用户:
mongo
在 mongo shell 中执行以下命令:
use admin
db.createUser({
user: "admin",
pwd: "your_password",
roles: ["root"]
})
修改配置文件后,重启MongoDB服务以使更改生效:
sudo systemctl restart mongod
使用新创建的管理员用户连接到MongoDB:
mongo -u admin -p your_password --authenticationDatabase admin
你可以根据需要创建其他用户和角色。例如,创建一个只读用户:
use your_database
db.createUser({
user: "read_only_user",
pwd: "read_only_password",
roles: [{ role: "read", db: "your_database" }]
})
在客户端应用程序中,确保使用正确的用户名和密码连接到MongoDB,并指定认证数据库:
const MongoClient = require('mongodb').MongoClient;
const uri = "mongodb://read_only_user:read_only_password@your_host:your_port/your_database?authSource=admin";
MongoClient.connect(uri, function(err, client) {
if (err) throw err;
console.log("Connected successfully to server");
const db = client.db("your_database");
// 进行数据库操作
client.close();
});
确保防火墙允许MongoDB的默认端口(27017):
sudo firewall-cmd --permanent --zone=public --add-port=27017/tcp
sudo firewall-cmd --reload
最后,验证配置是否正确。使用管理员用户连接到MongoDB,并尝试创建新用户或进行其他操作。
通过以上步骤,你可以在CentOS上成功配置MongoDB的认证机制。