MongoDB:applyOps:管理员无权执行命令

2024-01-18

非常美好的一天,

我在 mongodb 中有一个用户,如下所示,该用户具有超级用户权限(我使用以下命令确认了角色设置show users命令)

{
    "_id" : "admin.mongoadmin",
    "user" : "mongoadmin",
    "db" : "admin",
    "roles" : [
        {
            "role" : "readWrite",
            "db" : "admin"
        },
        {
            "role" : "root",
            "db" : "admin"
        }
    ],
    "mechanisms" : [
        "SCRAM-SHA-1",
        "SCRAM-SHA-256"
    ]
}

当我尝试使用 mongorestore 恢复 oplog 时,出现错误:

失败:恢复错误:应用 oplog 时出错:applyOps:管理员未授权执行命令{ applyOps: [ { ts: Timestamp(1552828309, 1), h: 4632811839329880092, v: 2, op: "c", ns: "admin.$cmd", o: { create: "system.keys", idIndex: { v: 2,键:{ _id: 1 },名称:“id", ns: "admin.system.keys" } }, o2: {} } ], $db: "admin" }

mongorestore -u admin -p password --authenticationDatabase=admin --oplogFile 0000000000_0_oplog.bson  --oplogReplay --oplogLimit=1552828432 --dir='/oplog/temp'
2019-03-17T13:47:36.945+0000    preparing collections to restore from
2019-03-17T13:47:36.945+0000    replaying oplog
2019-03-17T13:47:36.962+0000    Failed: restore error: error applying oplog: applyOps: not authorized on admin to execute command { applyOps: [ { ts: Timestamp(1552828309, 1), h: 4632811839329880092, v: 2, op: "c", ns: "admin.$cmd", o: { create: "system.keys", idIndex: { v: 2, key: { _id: 1 }, name: "_id_", ns: "admin.system.keys" } }, o2: {} } ], $db: "admin" }

NOTE:我使用从 bsondump 获得的最后一个值指定了 oploglimit (--oplogLimit=1552828432) 它是否正确?或者我错过了什么吗?

(i.e)

{"ts":{"$timestamp":{"t":1552828432,"i":79}},"t":{"$numberLong":"1"},"h":{"$numberLong":"-2072015676601300967"},"v":2,"op":"i","ns":"inventory.hari","ui":{"$binary":"avdlGH8AS1eBPXRytlO1Yg==","$type":"04"},"wall":{"$date":"2019-03-17T13:13:52.139Z"},"o":{"_id":"79","name":"Hari","role":"Developer","isEmployee":true}}
{"ts":{"$timestamp":{"t":1552828432,"i":80}},"t":{"$numberLong":"1"},"h":{"$numberLong":"-6279494628130059002"},"v":2,"op":"u","ns":"inventory.hari","ui":{"$binary":"avdlGH8AS1eBPXRytlO1Yg==","$type":"04"},"o2":{"_id":"79"},"wall":{"$date":"2019-03-17T13:13:52.139Z"},"o":{"_id":"79","name":"WD_Userjava.util.Random@9a7504c","role":"Developer","isEmployee":true}}

任何帮助表示赞赏。提前致谢。


use admin

db.createRole(
   {
     role: "interalUseOnlyOplogRestore",
     privileges: [
       { resource: { anyResource: true }, actions: [ "anyAction" ] }
     ],
     roles: []
   }
)

db.createUser({
  user: "root",
  pwd: "password",
  roles: [
    {role: "root", db: "admin"},"__system","interalUseOnlyOplogRestore","backup"
  ]
})

最好将权限减少到如下所示。

db.createUser({
  user: "root2",
  pwd: "password",
  roles: [
    "interalUseOnlyOplogRestore"
  ]
})

之后您可以运行恢复命令

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

MongoDB:applyOps:管理员无权执行命令 的相关文章

随机推荐

  • 欧拉计划 No. 14 Haskell

    我正在尝试解决 Project Euler 的问题 14 http projecteuler net problem 14 http projecteuler net problem 14 并且我使用 Haskell 陷入了死胡同 现在 我
  • Java替换字符串中的所有方括号

    我想从字符串中删除方括号 但我不知道如何操作 String str Chrissman 1 str replaceAll String temp str split System out println Nickname temp 0 Po
  • 计算 JMS 队列中的消息数

    检查 JMS 队列并获取其中所有消息的最佳方法是什么 如何统计队列中消息的数量 Thanks 使用 JmsTemplate public int getMessageCount String messageSelector return j
  • HasColumnType 和 Database generated 的正确用法是什么

    我正在将大约 80 个实体的大量 EF 模型从 EF4 迁移到 EF6 并且还将其从 Designer EDMX 生成数据库更改为 Code First 数据库 现在 我正在使用 EF Fluent api 配置实体关系 但我不确定是否正确
  • 更新后pgadmin无法登录

    刚刚将 pgadmin4 更新到版本 4 8 现在它不接受 ssh 隧道密码进入服务器 我收到以下错误消息 Failed to decrypt the SSH tunnel password Error utf 8 codec can t
  • 了解 QEMU 的好来源是什么?

    您会推荐什么书或网站来了解 QEMU 我想查看一些使用示例以及如何使用 API 最佳资源 主要 QEMU 使用文档 http wiki qemu org Manual Qemu 手册页 http manpages ubuntu com ma
  • 为什么用方法返回指针会使调试模式下的测试失败?

    当我在发布模式下启动以下测试时 它们都通过了 但在调试模式下它们都失败了 TestFixture public unsafe class WrapperTests Test public void should correctly set
  • ASP.net 是用户角色

    我无法弄清楚如何快速找出角色中的用户名是 否吗 我已经做到了 Roles FindUsersInRole Admin usersName 但我有点卡住了 有什么简单的方法吗 以下返回 true 或 false 具体取决于指定用户是否属于指定
  • 如何批量重命名路径下的文件新的不同名称?

    我有一个文件 destination txt 其中包含有关我的 CD 的路径信息 C Users NekhayenkoO Desktop LOG Dateien CD Imaging SME99 ISO C Users Nekhayenko
  • 将 R 中的数字四舍五入到指定的位数

    我在 R 中对数字进行四舍五入时遇到问题 我有以下数据 我想将它们四舍五入到 8 位小数 structure c 9 50863385275955e 05 4 05702267762077e 06 2 78921491976249e 05
  • 插入具有相同唯一 ID 的多行

    我使用一个查询插入多行 显然 ID 列会自动递增每一行 我想创建另一个 ID 列 并使查询期间插入的所有行的 ID 保持不变 因此 如果我在一个查询期间插入 10 行 我希望所有 10 行的 id 为 1 如何才能做到这一点 谢谢你的帮助
  • 在maven中,如何将非java src文件包含在输出jar中的同一位置?

    我收到了一个源代码包 在 src 目录树内有一些属性文件 properties 我想将它们保留在输出 jar 中的同一位置 例如 我想要 src main java com mycompany utils Myclass java src
  • 使用 javascript 创建动态 div

  • 表达式树不能包含使用可选参数的调用或调用

    表达式树可能不包含使用以下内容的调用或调用 可选参数 return this RedirectToAction
  • 应用程序的音频无法通过扬声器播放

    我的应用程序中有一个奇怪的错误 我正在使用 AVAudioPlayer 来播放声音 它的多个实例 声音通过耳机完美地工作 但是在没有耳机的情况下使用该应用程序不会从扬声器发出声音 所有音频剪辑均采用 AAC 编码 我尝试通过 Objecti
  • 使用 XMLHttpRequest 生成 RGB 图像的主色

    读者须知 这是一个很长的问题 但需要背景知识才能理解所提出的问题 The 色彩量化技术 https en wikipedia org wiki Color quantization通常用于获取主色图像的 进行颜色量化的著名库之一是莱普托尼卡
  • 为什么只有部分 C++ 模板实例导出到共享库中?

    我有一个 C 动态库 在 macOS 上 它有一个模板化函数 其中包含一些在公共 API 中导出的显式实例化 客户端代码只能看到模板声明 他们不知道其中发生了什么 并且依赖于这些实例化在链接时可用 由于某种原因 只有其中一些显式实例化在动态
  • 使用 ggplot2 为不同的行重新分级添加图例

    我想添加一个图例来告诉使用哪种颜色代表哪条线ggplot2 我的代码如下 require lme4 require ggplot2 m1 lt lmer Reaction 1 I Days 1 Days Subject data sleep
  • 在 Compojure 中组合路线

    我在 Clojure 中使用 Compojure 开发了两个不同的 Web 应用程序 每个都使用 defroutes 来创建其处理程序 如何将 defroutes 的两种不同定义合并为一个 defroute 我想将第一个应用程序的路由重用到
  • MongoDB:applyOps:管理员无权执行命令

    非常美好的一天 我在 mongodb 中有一个用户 如下所示 该用户具有超级用户权限 我使用以下命令确认了角色设置show users命令 id admin mongoadmin user mongoadmin db admin roles