温馨提示×

Ubuntu MongoDB配置中的认证与授权如何设置

小樊
43
2025-12-10 20:01:57
栏目: 云计算

在Ubuntu上配置MongoDB的认证与授权,可以按照以下步骤进行:

1. 安装MongoDB

首先,确保你已经安装了MongoDB。如果还没有安装,可以使用以下命令进行安装:

sudo apt update
sudo apt install -y mongodb

2. 启动MongoDB服务

安装完成后,启动MongoDB服务:

sudo systemctl start mongod

3. 启用认证

默认情况下,MongoDB是禁用认证的。你需要启用认证并创建一个管理员用户。

3.1 编辑MongoDB配置文件

打开MongoDB的配置文件 /etc/mongod.conf

sudo nano /etc/mongod.conf

在配置文件中找到 security 部分,并进行如下修改:

security:
  authorization: enabled

保存并关闭文件。

3.2 重启MongoDB服务

使配置生效,重启MongoDB服务:

sudo systemctl restart mongod

4. 创建管理员用户

连接到MongoDB实例并创建一个管理员用户:

mongo -u admin -p

在MongoDB shell中,创建一个管理员用户:

use admin
db.createUser({
  user: "admin",
  pwd: "your_password",
  roles: ["root"]
})

5. 启用用户认证

重新连接到MongoDB实例,并启用用户认证:

mongo -u admin -p --authenticationDatabase admin

在MongoDB shell中,启用用户认证:

db.auth("admin", "your_password")

6. 创建应用用户

为你的应用程序创建一个用户,并分配适当的角色。例如,创建一个只读用户:

use your_database
db.createUser({
  user: "app_user",
  pwd: "app_password",
  roles: ["readWrite"]
})

7. 配置客户端连接

在你的应用程序配置文件中,确保使用正确的用户名和密码连接到MongoDB。例如,在Node.js中使用MongoDB驱动程序:

const { MongoClient } = require('mongodb');

const uri = "mongodb://app_user:app_password@localhost:27017/your_database";
const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });

async function run() {
  try {
    await client.connect();
    console.log("Connected successfully to MongoDB");
    // 进行数据库操作
  } finally {
    await client.close();
  }
}

run().catch(console.error);

8. 验证配置

确保你的应用程序能够成功连接到MongoDB,并且用户权限设置正确。

通过以上步骤,你可以在Ubuntu上成功配置MongoDB的认证与授权。

0