1. 启用身份验证
默认情况下,MongoDB 不启用身份验证,需要修改配置文件启用。
打开 MongoDB 配置文件(通常是 mongod.conf)。
确保配置中有以下行(或添加):
security:authorization: enabled
保存文件并重启 MongoDB 服务:
sudo systemctl restart mongod
2. 连接到 MongoDB 无验证模式
在未启用身份验证之前,可以直接用默认方式连接 MongoDB。
mongo
3. 切换到 admin 数据库
用户认证信息通常保存在 admin 数据库中。
use admin
4. 创建管理员用户
使用以下命令创建一个具有管理权限的用户:
db.createUser({user: "adminUser",pwd: "strongPassword123", // 设置安全的密码roles: [{ role: "userAdminAnyDatabase", db: "admin" }]
})
说明:
userAdminAnyDatabase 是一个角色,允许用户管理所有数据库的用户。
5. 验证管理员用户创建成功
断开连接后,重新以管理员身份连接 MongoDB:
mongo -u "adminUser" -p "strongPassword123" --authenticationDatabase "admin"
6. 为其他数据库设置用户权限
切换到目标数据库(例如 testDB)并创建用户:
use testDB
db.createUser({user: "testUser",pwd: "securePassword456", // 用户密码roles: [{ role: "readWrite", db: "testDB" }]
})
7. 测试身份验证
使用新创建的用户登录:
mongo -u "testUser" -p "securePassword456" --authenticationDatabase "testDB"
8. 验证身份验证功能是否正常
在启用 security.authorization 后,所有操作都需要身份验证,否则会被拒绝。