
MongoDB
使用 Docker 内的 Mongo 身份验证
在使用 Docker 运行 MongoDB 时,可以启用身份验证来保护数据库的安全性。MongoDB 提供了内置的身份验证功能,可以使用用户名和密码来访问数据库。本文将介绍如何在 Docker 内的 Mongo 实例中启用身份验证,并提供相关的案例代码。步骤 1:创建 Docker 容器首先,我们需要创建一个 Docker 容器来运行 Mongo 实例。可以使用以下命令来创建一个新的容器:docker run --name mongo-contAIner -p 27017:27017 -d mongo这将创建一个名为 "mongo-contAIner" 的容器,并将容器的 27017 端口映射到主机的 27017 端口。我们将在这个容器中运行 Mongo 实例。步骤 2:进入容器接下来,我们需要进入容器来进行后续的操作。可以使用以下命令进入容器:
docker exec -it mongo-contAIner bash这将打开一个新的终端窗口,并进入到名为 "mongo-contAIner" 的容器中。步骤 3:连接到 MongoDB在容器内部,可以使用以下命令连接到 MongoDB:
mongo这将打开一个 MongoDB 的 shell 终端,可以在其中执行 MongoDB 相关的命令。步骤 4:创建管理员用户在启用身份验证之前,我们需要先创建一个管理员用户。可以使用以下命令来创建一个具有管理员权限的用户:
use admindb.createUser({ user: "admin", pwd: "admin123", roles: [{ role: "root", db: "admin" }]})这将在 "admin" 数据库中创建一个名为 "admin" 的用户,密码为 "admin123",并赋予该用户 "root" 角色。步骤 5:启用身份验证现在,我们可以启用身份验证功能。可以使用以下命令在 Mongo 实例中启用身份验证:exitdocker stop mongo-contAInerdocker rm mongo-contAInerdocker run --name mongo-contAIner -p 27017:27017 -d mongo --auth这将停止并删除之前的容器,并创建一个新的容器,同时在启动时启用身份验证。步骤 6:使用身份验证登录现在,我们可以使用管理员用户登录到 Mongo 实例中。可以使用以下命令连接到 MongoDB:
docker exec -it mongo-contAIner mongo -u admin -p admin123 --authenticationDatabase admin这将使用管理员用户名和密码连接到 Mongo 实例,并将认证数据库设置为 "admin"。步骤 7:创建其他用户除了管理员用户外,我们还可以创建其他具有不同权限的用户。可以使用以下命令在认证数据库中创建一个新用户:
use admindb.createUser({ user: "user", pwd: "password", roles: [{ role: "readWrite", db: "mydb" }]})这将在 "admin" 数据库中创建一个名为 "user" 的用户,密码为 "password",并赋予该用户 "readWrite" 角色。通过在 Docker 内的 Mongo 实例中启用身份验证,可以提高数据库的安全性。通过创建不同权限的用户,可以控制用户对数据库的访问权限。这样可以确保只有经过授权的用户才能访问和修改数据库的内容。参考代码:Javascript// 创建管理员用户use admindb.createUser({ user: "admin", pwd: "admin123", roles: [{ role: "root", db: "admin" }]})// 启用身份验证exitdocker stop mongo-contAInerdocker rm mongo-contAInerdocker run --name mongo-contAIner -p 27017:27017 -d mongo --auth// 使用身份验证登录docker exec -it mongo-contAIner mongo -u admin -p admin123 --authenticationDatabase admin// 创建其他用户use admindb.createUser({ user: "user", pwd: "password", roles: [{ role: "readWrite", db: "mydb" }]})通过以上步骤,我们可以在 Docker 内的 Mongo 实例中启用身份验证,并创建不同权限的用户来保护数据库的安全性。Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号