为了账号安全,请及时绑定邮箱和手机立即绑定

MongoDB身份认证机制揭秘!

检查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实例的工具。你可以使用它来检查服务器的状态,包括身份验证状态。

  1. 在命令行中输入以下命令
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应用开发
  • 区块链应用开发
  • 大数据开发挖掘经验
  • 推荐系统项目

目前主攻市级软件项目设计、构建服务全社会的应用系统。

参考:

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
1.4万
获赞与收藏
1476

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消