首先需配置MongoDB开启身份验证,通过配置文件或启动参数启用auth;接着在未启用认证时连接数据库,在admin库中创建具有userAdminAnyDatabase和root角色的管理员用户;然后使用该用户通过-u、-p及--authenticationDatabase admin进行认证登录;最后注意必须先创建用户再开启认证,避免使用root角色以保证安全。
在 MongoDB 中,要启用并使用 admin 数据库的授权登录,必须先开启身份验证,并创建具有相应角色的用户。以下是具体操作步骤:
确保 MongoDB 实例配置了 auth=true,以开启权限验证。
可以通过以下方式之一实现:
security:
authorization: enabled
mongod --auth --dbpath /your/data/path
首次配置时,需先不启用 auth 连接数据库,然后在 admin 数据库中创建一个拥有管理员角色的用户。
连接到 MongoDB(未启用 auth 时):
mongo
执行以下命令切换到 admin 数据库并创建用户:
use admin
db.createUser({
user: "adminUser",
pwd: "yourStrongPassword",
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "root" ]
})
推荐使用 root 角色,它拥有所有权限,适合全局管理。
启用 auth 后,使用创建的管理员账号进行认证登录。
mongo -u adminUser -p yourStrongPassword --authenticationDataba
se admin
use admin
db.auth("adminUser", "yourStrongPassword") // 返回 1 表示成功
基本上就这些。开启 auth 并在 admin 库创建具备管理权限的用户后,就能安全地授权登录了。