如何在用户名和密码下使用mongorestore / mongodump?

时间:2017-05-29 08:54:09

标签: mongodb

我知道这是一项基本的安全措施,但我不能使它适用于我的mongodb安装。每次我运行命令时:

mongorestore dump_folder -u "username" -p "password"

它返回:

error reading database: not authorized on DATABASE_NAME to execute command { listCollections: 1, cursor: { batchSize: 0 } }

我的问题是:我需要启用哪些权限以及如何启用?

目前,我只是关闭了/etc/mongod.conf中Mongo的安全性,并在我恢复/转储数据库后重新启动它。

附加说明: 这就是我准备我的数据库及其用户的方式

  1. 我使用我的管理员帐户登录,创建一个名为DATABASE001
  2. 的数据库
  3. 并创建一个用户:

    use DATABASE001
    db.createUser({ 
      user: "USER001", 
      pwd: "mypassword",
      roles:[ { role: "readWrite", db: "DATABASE001" },"dbAdmin"  ]
    })
    
  4. 对于角色,我将readWrite添加到DATABASE001以及dbAdmin 我希望这个用户(USER001)能够备份或恢复他的数据库(DATABASE001)。

    1. 我使用此命令登录测试了它。它已成功登录

      mongo localhost -u USER001 -p mypassword --authenticationDatabase DATABASE001
      
    2. 我想用以下内容转储此数据库内容:

      mongodump  -u USER001 -p mypassword --authenticationDatabase DATABASE001
      
      它给我一个错误: Failed: error getting database names: not authorized on admin to execute command { listDatabases: 1 }

    3. 这是listDatabases是什么?如何将其添加到我的角色?

1 个答案:

答案 0 :(得分:0)

$ mongorestore --username adminUser --password pass123 --authenticationDatabase admin --db exampleDB dump/exampleDB