CentOS MongoDB 开启用户名密码认证

MongoDB是一种流行的开源数据库,被广泛应用于各种应用程序中。为了增加数据的安全性,我们可以通过开启用户名密码认证的方式来保护MongoDB中的数据。本文将介绍在CentOS系统上如何开启MongoDB的用户名密码认证,并提供代码示例。

1. 安装MongoDB

在开始之前,我们首先需要在CentOS系统上安装MongoDB。可以按照以下步骤进行安装:

  1. 更新系统软件包:
sudo yum update -y
  1. 添加MongoDB的官方软件源:
sudo vi /etc/yum.repos.d/mongodb-org-4.4.repo

在打开的文件中,添加以下内容:

[mongodb-org-4.4]
name=MongoDB Repository
baseurl=
gpgcheck=1
enabled=1
gpgkey=

保存并退出。

  1. 安装MongoDB:
sudo yum install -y mongodb-org

安装完成后,MongoDB将自动启动。

2. 开启用户名密码认证

默认情况下,MongoDB是没有开启用户名密码认证的。为了增加数据的安全性,我们可以执行以下步骤来开启用户名密码认证。

  1. 连接到MongoDB的Shell:
mongo
  1. 创建管理员用户:
use admin
db.createUser({ user: "admin", pwd: "password", roles: [ { role: "root", db: "admin" } ] })

这里创建了一个名为admin,密码为password的管理员用户。

  1. 编辑MongoDB配置文件:
sudo vi /etc/mongod.conf

找到以下行,并注释掉:

#security:
#  authorization: enabled

保存并退出。

  1. 重启MongoDB服务:
sudo systemctl restart mongod

现在,用户名密码认证已经成功开启。

3. 使用用户名密码认证连接MongoDB

在开启用户名密码认证之后,我们需要使用正确的用户名和密码来连接MongoDB。以下是一个示例代码,演示如何使用Python连接到用户名密码认证开启的MongoDB。

from pymongo import MongoClient

username = "admin"
password = "password"

# 创建MongoDB连接
client = MongoClient('mongodb://{}:{}@localhost:27017/admin'.format(username, password))

# 选择数据库
db = client.test

# 查询数据
data = db.collection.find()

# 打印结果
for document in data:
    print(document)

在上面的代码中,我们使用了pymongo模块来连接MongoDB。首先需要指定正确的用户名和密码,然后构建连接字符串。最后,我们可以选择数据库并执行相应的操作。

总结

通过开启用户名密码认证,我们可以增加MongoDB中数据的安全性。本文介绍了在CentOS系统上如何安装MongoDB,并开启用户名密码认证。同时提供了一个Python代码示例,演示了如何连接到用户名密码认证开启的MongoDB。希望本文对你有所帮助!

journey
    section 初始化
        1. 更新系统软件包
        2. 添加MongoDB的官方软件源
        3. 安装MongoDB
    section 开启用户名密码认证
        1. 连接到MongoDB的Shell
        2. 创建管理员用户
        3. 编辑MongoDB配置文件
        4. 重启MongoDB服务
    section 使用用户名密码认证连接MongoDB
        1. 创建MongoDB连接
        2. 选择数据库
        3. 查询数据
        4. 打印结果
gantt
    dateFormat  YYYY-MM-DD
    title CentOS MongoDB 开启用户名密码认证甘特图

    section 安装MongoDB
    更新系统软件包    :done, 2022-01-01, 2022-01-02
    添加MongoDB的官方软件源    :done, 2022-01-02, 2022-01-03
    安装MongoDB    :done, 2022-01-03, 2022-01-04

    section 开