无需凭据仍可访问 MongoDB 服务器

2024-02-20

我的机器中有一个新的 mongodb 服务器(2.6.0),我使用以下配置文件启动了 mongod 实例:

dbpath = c:\mongo\data\db
port = 27017
logpath = c:\mongo\data\logs\mongo.log
auth = true

后来,我通过 mongo shell 连接到这个 mongod 实例并创建了一个管理员用户:

use admin
db.createUser(
  {
    user: "tugberk",
    pwd: "12345678",
    roles:
    [
      {
        role: "userAdminAnyDatabase",
        db: "admin"
      }
    ]
  }
)

然后,我从 shell 注销并使用以下命令重新连接:

mongo --host localhost --port 27017 -u tugberk -p 12345678 --authenticationDatabase admin

然后,我创建了一个具有 root 访问权限的用户:

use admin
db.createUser(
    {
      user: "tugberkRoot",
      pwd: "12345678",
      roles: [ "root" ]
    }
)

这里不需要最后一步,但现在应该完全禁用匿名访问。但是,我仍然可以通过 mongo shell 匿名连接到它(即使我无权执行任何操作):

我应该怎么做才能防止任何匿名连接?


身份验证会阻止您对数据库执行操作(如屏幕截图所示 - 您甚至无法列出数据库),它不会阻止连接 - 毕竟,您必须能够连接才能进行身份验证。

有一个添加超时功能请求 https://jira.mongodb.org/browse/SERVER-12418,但目前这本质上就是服务器的行为方式。

值得注意的是,在您尝试执行某些操作之前,这实际上与仅使用以下命令连接到端口没有什么不同telnet- 开头显示的文本“连接到:”等来自客户端,而不是服务器。一旦它尝试执行任何未经身份验证的操作,甚至列出服务器警告,就会抛出错误,因为它没有足够的权限。

如果您想从连接角度锁定事物,从 MongoDB 角度来看,唯一的选择是使用以下命令限制其侦听的 IP 地址(默认为全部):bindIp http://docs.mongodb.org/manual/reference/configuration-options/#net.bindIp选项。使用127.0.0.1例如,会将其锁定为本地使用(但随后您将无法从远程主机进行连接),这使得复制成为一个问题,因此在选择绑定地址时要小心。

在 MongoDB 之外,您应该从防火墙的角度考虑锁定事物。在 Linux 上这将是IPTables https://en.wikipedia.org/wiki/Iptables, ufw https://help.ubuntu.com/community/UFW, 主机.允许/拒绝 http://docs.slackware.com/howtos:security:inetd或类似的。 Windows 防火墙不是我的专业领域,但我想你也可以在那里做类似的事情。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无需凭据仍可访问 MongoDB 服务器 的相关文章

  • MongoRepository动态查询

    我有以下问题 假设我有以下模型对象 class Person String id String firstName String lastName Map
  • OperationFailure:在 MongoEngine/PyMongo 中线程化时出现数据库错误

    我有一个函数可以从网站读取数据 对其进行处理 然后将其加载到 MongoDB 中 当我在没有线程的情况下运行它时 它工作正常 但是一旦我设置了只调用这个函数的 celery 任务 我经常会收到以下错误 OperationFailure 数据
  • 当字段是数字时怎么说...在 mongodb 中匹配?

    所以我的结果中有一个名为 城市 的字段 结果已损坏 有时它是一个实际名称 有时它是一个数字 以下代码显示所有记录 db zips aggregate project city substr city 0 1 sort city 1 我需要修
  • 嵌套文档上的 MongoDB $lookup

    我是 mongo 的新手 正在努力应对以下问题 我有 2 个集合 结构如下 对于我的一生 我不知道如何对学校收藏进行 lookup 阅读其他帖子 我肯定使用 ObjectId 作为参考以及外部字段 下面是我的结构 Alumni id joh
  • 有没有办法将unix格式的时间戳显示为ISODate?

    我们在MongoDB中使用unix时间戳存储了一个日期 当我进行查询时如何获取日期 有没有办法以 ISODate 格式显示时间戳 背景 A unixtime http en wikipedia org wiki Unixtime值代表sec
  • 将 Mongo 集合转储为 JSON 格式

    有没有办法将 mongo 集合转储为 json 格式 无论是在 shell 上还是使用 java 驱动程序 我正在寻找性能最好的一个 Mongo 包含一个 mongoexport 实用程序 参见文档 https docs mongodb c
  • MongoDB 聚合计数太慢

    我有大约 6 万个文档users集合 并有以下查询 db getCollection users aggregate match userType employer lookup from companies localField id f
  • 如何统计MONGODB中所有唯一值? [复制]

    这个问题在这里已经有答案了 date 2017 09 04 description DD from my employer1 amount 1000 33 date 2017 09 06 description DD from my emp
  • MongoDB list集合过滤器

    我正在使用 Node js 我正在尝试过滤必须排除集合 出口 的集合并检索所有其他集合 但我似乎无法弄清楚语法 我试过了 db listCollections filter outlets toArray err docs 有什么建议么 您
  • 为什么 mongo 的状态会抛出异常(code = exited,status = 48)?

    我在使用 mongo 时遇到了极其缓慢的情况 早些时候 当我输入 sudo systemctl status mongodb mongo 时 我出现在线并且呈绿色 现在几天后他开始抛弃我 mongodb service High perfo
  • MongoDB 添加以变量值命名的新字段

    我的问题是 鉴于像这样的文件很少 deliveryDay 2021 01 14 plate name pasta quantity 1 deliveryDay 2021 01 16 plate name pasta quantity 3 d
  • 当数据大小超过 500 万时,在 mongoDb 中从 java 调用 find() 查询会变慢

    我的应用程序在从 java 的 mongoDb 中执行 find 操作时遇到性能问题 当数据大小超过 500 万时 需要花费大量时间 有时搜索单个文档需要数千毫秒 任何意见都将受到赞赏 java查找查询 db test find flag
  • 在mongo聚合中选择* group by

    我正在尝试做一些我认为很简单的事情 假设我在 mongo 中有一系列具有公共键和可变数量属性的记录 我想选择记录中的所有属性并按名称分组 例如 Name George x 5 y 3 Name George z 9 Name Rob x 1
  • Mongoose update 更新数组内的嵌套对象

    我正在尝试查询和更新名册数组 roster schedule monday start 中的元素 然后更新本示例中的值 monday start 这两个键需要是动态的 我认为方法会是这样的 通过 id查找文档 通过 id 在数组中查找匹配对
  • 如何使用 pollingThrottle 和 pollingInterval?

    所以我的应用程序中有一些东西我不需要立即反应并找到有关属性的信息轮询节流阀 and 轮询间隔在文档中 所以这里基本上是我设法找到的有关这些属性的所有信息 pollingIntervalMs 数 仅限服务器 在服务器上观察时轮询此查询的频率
  • MongoDB:查询速度慢,即使有索引

    我有一个网页 它使用 MongoDB 来存储和检索各种测量结果 突然 在某个时候 我的网页变得如此缓慢 以至于无法使用 事实证明 我的数据库是罪魁祸首 我进行了搜索 但没有找到任何解决我的问题的方法 我很抱歉 因为我对 MongoDB 还很
  • Mongo中如何定义每个分片的分片范围?

    比方说 该文件是 x Number 我有 3 个碎片 除了自动分片之外 我可以具体定义 shard1 仅包含数据 x 你可以 可以手动预分割块 如下所述 http www mongodb org display DOCS Splitting
  • 如何修改副本集配置?

    我正在运行一个 mongo 2 节点集群 并使用此副本集配置 config id repl1 members id 0 host localhost 15000 id 1 host 192 168 2 100 15000 我必须将这两个节点
  • Mongo 可审核的 ZonedDateTime 字段在 Spring Boot 2 中不起作用

    在 Spring Boot 项目中 我使用 CreatedDate 之类的注释来保存有关创建 更新相应文档的日期的信息 整个项目都使用 ZonedDateTime 因此带注释的字段也是 ZonedDateTime 为了实现 Mongo 的日
  • mongoose node.js,使用 $lt 和 $gt 进行查询不起作用

    我想要获取最后分数在 15 到 20 之间的所有学生 为此 我使用 mongoose 在 mongoDB 中执行以下查询 模型工作正常 所有其他查询都正常 Pupils find marks 1 value lt 20 marks 1 va

随机推荐

  • 在 TriggerDagRunOperator 中提供上下文

    我有一个 dag 它被另一个 dag 触发 我已经通过这个 dag 传递了一些配置变量DagRunOrder payload字典以同样的方式官方示例 https github com apache incubator airflow blo
  • 寻找最常见的组合

    我有一个包含 2 列 ID 号和品牌的数据框 X1 X2 1234 A89 1234 A87 1234 A87 1234 A32 1234 A27 1234 A27 1235 A12 1235 A14 1235 A14 1236 A32 1
  • swift2 中协议扩展的限制和默认值

    所以我在研究协议扩展时遇到了一个 有趣 的问题 我想写一个Meters and Kilometers用于测试某些东西的单元类型 作为一个类 它非常容易做到这一点 其中有一个基类 并且两个子类都覆盖基类 而只是覆盖一个简单的值 Convers
  • 使用 js.dart 公开 auth0 API

    我正在编写一个 Dart Angular2 应用程序 但它与当前的问题无关 我试图通过使用 1https pub dartlang org packages js 公开它的 API 来将 Auth0Lock 与 dart 一起使用 我正在使
  • 如何在 Mac OSX 上的 Qt 中使用 pkcs12/pfx 成功执行 SSL 加密?

    Qt 新手和开发跨平台应用程序 需要来自服务器和客户端的 SSL 身份验证基于 pem 的加密适用于 Linux Android Windows 然而 Mac OSX 存在问题 我们的代码如下所示 QFile privateKeyFile
  • UIButton:需要一个圆形点击区域

    好的 我有 6 个自定义 UIButton 他们的正常状态图像都是圆形图像 它们的间距相等 但所有圆圈都相互接触 自定义 UIbutton 其上有圆形图像 的问题在于该按钮的点击区域是方形的 并且该方形的角与其他自定义按钮的点击区域重叠 我
  • 使用 Rails 助手渲染部分内容

    根据我的理解 助手主要用于清理视图中某些特定于视图的逻辑 但是在我当前的新项目 遗留应用程序 中 我偶然发现了很多看起来像这样的助手 def itemprepare render partial gt items itemlist summ
  • Django 管理内联的国家/州/城市下拉菜单

    我有一个 BusinessBranch 模型的城市外键 我的城市模型还具有州和县模型的州和国家外键 我很难在 BusinessBranchInline 中显示州和国家 地区下拉菜单 实现这一目标的最佳方法是什么 如果下拉列表根据其父级的值来
  • 使用“mm”说明符格式化月份的 DateTime ToString 问题

    我在获取正确的格式时遇到问题 我期待 2013 10 但我得到的是 2013 00 为什么会这样 我该如何解决这个问题 DateTime dt DateTime Parse 2013 Oct 01 string str2 dt ToStri
  • 如何在 C# 中执行结构体内联初始化?

    我应该在我的任意结构中实现什么成员才能使以下分配成为可能 public struct MyStruct String s Int length MyStruct myStruct new MyStruct s Hello length 5
  • 如何在 ASP.NET Core 中返回 401 而不是 302?

    我试图让 ASP NET Core Identity 在用户未登录时返回 401 我添加了一个 Authorize 属性到我的方法 而不是返回 401 而是返回 302 我尝试了很多建议 但似乎没有任何效果 包括services Confi
  • 从 JComboBox 渲染器获取工具提示

    我有一个扩展 JPanel 的 ComboBox 渲染器并有两个标签 在这里 我需要在鼠标移至时显示工具提示图标标签仅有的 如果鼠标在标签项不应显示工具提示 import java awt Color import java awt Com
  • asyncio matplotlib show() 仍然冻结程序

    我希望运行模拟当在同时在绘图中输出其进度 我一直在研究很多线程和多重处理的示例 但它们都非常复杂 所以我想用Python的新asyncio图书馆这应该更容易 我找到了一个例子 如何在异步函数中使用 yield https stackover
  • 如何根据书籍的条形码编号查找有关书籍的数据? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在构建世界上最简单的图书馆应用程序 我想要做的就是使用典型的扫描仪 只需将条形码的数字输入到字段中
  • Python 请求:POST 请求删除授权标头

    我正在尝试使用 Python requests 库发出 API POST 请求 我正在经过一个Authorizationheader 但是当我尝试调试时 我可以看到 header 被删除 我不知道发生了什么事 这是我的代码 access t
  • Android setOnclicklistener 参数

    我是android的初学者 在为按钮设置onclick监听器时 传递的参数是什么意思 btn1 setOnClickListener new OnClickListener Override public void onClick View
  • MySQL php 表的线性插值

    I have a table titled psytable moist air shown below 我正在尝试开发一个 MySQL 语句 该语句将在记录之间插入一个值 编辑 如果用 PHP 进行数学计算更容易 我也愿意接受该解决方案
  • 从图像中提取线条以输入 OCR - Tesseract

    我在 pycon 上看这个演讲http youtu be B1d9dpqBDVA t 15m34s http youtu be B1d9dpqBDVA t 15m34s15 33 左右 演讲者谈到从图像 收据 中提取线条 然后将其输入 OC
  • Mongodb计算查询--累加乘法

    我最近开始在 Mongodb 中从事 POC 工作 我下面有一个 json 集合 db ccpsample insertMany ccp id 1 period 601 sales 100 00 ccp id 1 period 602 gr
  • 无需凭据仍可访问 MongoDB 服务器

    我的机器中有一个新的 mongodb 服务器 2 6 0 我使用以下配置文件启动了 mongod 实例 dbpath c mongo data db port 27017 logpath c mongo data logs mongo lo