检查MongoDB服务器的身份验证状态,使用MongoDB的shell或者命令行工具。
1 使用MongoDB Shell
1.1 连接到admin
数据库
因为大多数身份验证相关的命令需要在admin
数据库中运行:
use admin
1.2 检查服务器的身份验证状态
db.runCommand({getParameter: 1, authenticationMechanisms: 1})
如服务器启用身份验证,会看到类似输出:
{
"authenticationMechanisms" : [
"SCRAM-SHA-256",
"SCRAM-SHA-1"
],
"ok" : 1
}
2 使用mongostat
一个监控MongoDB实例的工具。你可以使用它来检查服务器的状态,包括身份验证状态。
- 在命令行中输入以下命令
mongostat --uri "mongodb://localhost:27017/admin"
如果服务器启用了身份验证,mongostat
会提示你输入用户名和密码。
2 db.auth()
如已连接到MongoDB服务器,db.auth()测试身份验证,如:
3 创建管理员用户
运行命令前,确保MongoDB服务器已经启用了身份验证。否则,这个命令将不会起作用。
创建新用户:
db.createUser({
user: "admin",
pwd: "password",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
roles
指定用户角色。userAdminAnyDatabase
角色允许用户在所有数据库中创建和修改用户。
执行成功的输出:
{
"ok" : 1
}
可用这个用户名和密码来连接到MongoDB服务器并进行身份验证。
MongoDB 4.0或更高版本,用SCRAM-SHA-256
身份验证机制。可在db.createUser()
添加mechanisms
字段:
db.createUser({
user: "myUser",
pwd: "myPassword",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ],
mechanisms: [ "SCRAM-SHA-256" ]
})
创建用户后,测试身份验证:
db.auth("myUser", "myPassword")
如果身份验证成功,你会看到1
,否则0
。
关注我,紧跟本系列专栏文章,咱们下篇再续!
作者简介:魔都架构师,多家大厂后端一线研发经验,在分布式系统设计、数据平台架构和AI应用开发等领域都有丰富实践经验。
各大技术社区头部专家博主。具有丰富的引领团队经验,深厚业务架构和解决方案的积累。
负责:
- 中央/分销预订系统性能优化
- 活动&券等营销中台建设
- 交易平台及数据中台等架构和开发设计
- 车联网核心平台-物联网连接平台、大数据平台架构设计及优化
- LLM Agent应用开发
- 区块链应用开发
- 大数据开发挖掘经验
- 推荐系统项目
目前主攻市级软件项目设计、构建服务全社会的应用系统。
参考: