温馨提示×

mongodb认证在centos上如何配置

小樊
39
2025-12-31 03:33:14
栏目: 云计算

在CentOS上配置MongoDB认证,可以按照以下步骤进行:

1. 安装MongoDB

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

sudo yum install -y mongodb-org

2. 启动MongoDB服务

安装完成后,启动MongoDB服务并设置开机自启动:

sudo systemctl start mongod
sudo systemctl enable mongod

3. 配置MongoDB认证

MongoDB的认证配置文件通常是/etc/mongod.conf。你需要编辑这个文件来启用认证。

打开配置文件:

sudo vi /etc/mongod.conf

找到security部分,并进行如下修改:

security:
  authorization: enabled

保存并退出编辑器。

4. 重启MongoDB服务

为了使配置生效,需要重启MongoDB服务:

sudo systemctl restart mongod

5. 创建管理员用户

连接到MongoDB并创建一个管理员用户。你可以使用mongo shell或者通过编程语言连接MongoDB。

使用mongo shell创建管理员用户

  1. 连接到MongoDB(不需要认证):

    mongo
    
  2. 切换到admin数据库:

    use admin
    
  3. 创建管理员用户:

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

    请将your_password替换为你想要设置的密码。

6. 使用管理员用户认证

现在,你可以使用管理员用户进行认证来连接MongoDB。

使用mongo shell认证

mongo -u admin -p your_password --authenticationDatabase admin

使用编程语言连接MongoDB

例如,使用Python和pymongo库:

from pymongo import MongoClient

client = MongoClient('mongodb://admin:your_password@localhost:27017/admin')
db = client.admin
print(db.list_collection_names())

7. 配置其他用户的认证

如果你需要为其他数据库创建用户,可以在admin数据库中创建这些用户。

例如,创建一个只读用户:

use your_database
db.createUser({
  user: "read_only_user",
  pwd: "read_only_password",
  roles: [{ role: "read", db: "your_database" }]
})

8. 配置防火墙

确保你的防火墙允许MongoDB的默认端口(27017)通信。

sudo firewall-cmd --permanent --zone=public --add-port=27017/tcp
sudo firewall-cmd --reload

完成以上步骤后,你的MongoDB实例应该已经配置好了认证。

0