CentOS 7 MongoDB启用身份认证教程

1. 整体流程

下面是实现CentOS 7上MongoDB启用身份认证的整体步骤:

gantt
    title CentOS 7 MongoDB启用身份认证流程

    section 准备工作
        创建用户并授予角色权限: done, 2021-09-01, 1d
        修改MongoDB配置文件: done, 2021-09-01, 1d

    section 重启MongoDB服务
        重启MongoDB服务: done, 2021-09-02, 1d

    section 身份认证测试
        使用认证登录MongoDB: done, 2021-09-02, 1d

2. 准备工作

在开始实现之前,我们需要完成以下准备工作:

  1. 创建用户并授予角色权限:

    # 连接MongoDB
    mongo
    
    # 切换到admin数据库
    use admin
    
    # 创建用户
    db.createUser(
      {
        user: "admin",
        pwd: "password",
        roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
      }
    )
    

    上述代码创建了一个名为admin的用户,密码为password,角色为userAdminAnyDatabase,该角色授予了管理所有数据库的权限。

  2. 修改MongoDB配置文件:

    # 打开MongoDB配置文件
    sudo vi /etc/mongod.conf
    

    找到以下行,并进行修改:

    # 将此行注释去掉
    #security:
    #  authorization: enabled
    

    注释的方式取决于具体的配置文件格式,通常是在行首加上#号。上述修改将启用身份认证。

3. 重启MongoDB服务

完成准备工作后,我们需要重启MongoDB服务以使配置生效:

# 重启MongoDB服务
sudo systemctl restart mongod

4. 身份认证测试

重启MongoDB服务后,我们需要使用认证信息进行登录测试:

# 登录MongoDB
mongo -u admin -p --authenticationDatabase admin

此处的admin是上述创建的用户名,-p参数表示需要输入密码,--authenticationDatabase admin指定了认证数据库为admin。

如果登录成功,则表示启用身份认证已经生效。

附:代码注释

下面是上述步骤中涉及到的代码及其注释:

  1. 创建用户并授予角色权限

    # 连接MongoDB
    mongo
    
    # 切换到admin数据库
    use admin
    
    # 创建用户
    db.createUser(
      {
        user: "admin",
        pwd: "password",
        roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
      }
    )
    
    • mongo:连接MongoDB数据库服务器。
    • use admin:切换到admin数据库。
    • db.createUser({...}):创建一个名为admin的用户,密码为password,角色为userAdminAnyDatabase。
  2. 修改MongoDB配置文件

    # 打开MongoDB配置文件
    sudo vi /etc/mongod.conf
    
    • sudo vi /etc/mongod.conf:使用vi编辑器打开MongoDB的配置文件。
  3. 重启MongoDB服务

    # 重启MongoDB服务
    sudo systemctl restart mongod
    
    • sudo systemctl restart mongod:通过systemctl命令重启MongoDB服务。
  4. 身份认证测试

    # 登录MongoDB
    mongo -u admin -p --authenticationDatabase admin
    
    • mongo -u admin -p --authenticationDatabase admin:使用认证信息登录MongoDB,用户名为admin,需要输入密码,认证数据库为admin。

以上是在CentOS 7上启用MongoDB身份认证的详细步骤及代码注释。通过这些步骤,你可以成功启用身份认证,提高MongoDB的安全性。祝你学习进步!