当前位置: 首页 > 知识库问答 >
问题:

MongoDB:applyops:管理员未授权执行命令

尹凌龙
2023-03-14

非常好的一天,

{
    "_id" : "admin.mongoadmin",
    "user" : "mongoadmin",
    "db" : "admin",
    "roles" : [
        {
            "role" : "readWrite",
            "db" : "admin"
        },
        {
            "role" : "root",
            "db" : "admin"
        }
    ],
    "mechanisms" : [
        "SCRAM-SHA-1",
        "SCRAM-SHA-256"
    ]
}
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" }
{"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}}

任何帮助都很感激。提前谢了。

共有1个答案

融修平
2023-03-14
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"
  ]
})

之后,可以运行restore命令

mongorestore --port 27017 --oplogReplay oplogRestore --authenticationDatabase admin -u root2 -p password
 类似资料:
  • 我跟随Vertx的mongo auth的插图如下: 我在本地MongoDB服务器上创建了一个名为“root”的用户: {“_id”:“admin.root”,“user”:“root”,“db”:“admin”,“customData”:{“user”:“XXX”},“roles”:[{“role”:“readWrite”,“db”:“admin”},{“role”:“userAdminAnyDa

  • 管理组采用逐级授权模式,上级包含下级所有权限(应用管理、通讯录管理、API接口等),权限逐级为:企业创建人>系统管理组>下级管理组 由于每个管理组权限不同,一个管理员只能授权管理一个管理组(系统管理组、二级管理组、三级管理组、四级管理组等) 授权/变更系统管理员 企业创建人可将成员添加为系统管理组管理员,则该管理员具有所有应用和服务号的管理权限,具体操作如下: 1)企业创建人登录企业管理平台:ht

  • http://docs.mongodb.org/manual/tutorial/add-user-administrator/ 2)然后我编辑了mongod.conf,取消了这一行的注释 4)我可以连接,但它在连接时说了这句话。 5)现在,我创建的这个用户似乎根本没有权限。 问题出在哪里?我将整个过程重复了3次,并且 我认为我是按照MongoDB文档中指定的方式完成的。但它不起作用。 我希望这个用

  • 一、授权用户对授权版本信息的管理 1、登录官网,打开个人中心-订单管理 授权流程: 1.当购买授权后,绑定一级域名 2.下载授权证书(加密文件) 3.填写授权码 2、打开后台-设置-授权管理-授权信息 当商家已购买授权时,直接输入授权码;当未购买授权时,点击授权进入官网自行购买 二、在线更新 3.2.0版本后支持在线更新,官方发布版本更新消息后,用户可自行下载更新最新版本。

  • 问题内容: 我正在写以下命令 我怎样才能将此命令限制为仅管理员?我试着看,它说。我如何检查给定的用户是否是? 问题答案: 有两种方法:通过使用的角色白名单 或经许可使用 这两个装饰器都是Checks,如果它们失败,将引发您的一些子类供您选择处理。

  • 我花了一些时间试图找出什么是错误的,但由于我无法找到,我决定在这里问。 我正在运行MongoDB(Windows 64位2008 R2)3.2版。3在Windows 8上,路径为: C:\MongoDB\bin用于安装 数据文件夹的C:\data\db 我已经从官方文档中安装了以下视频和教程。 第一个问题可能是客户端(mongo.exe)和服务器(mongod.exe)之间的连接,因为我不知道这是