Akhil
Akhil

Reputation: 6697

Not able to run mongodump

I have created two users with below roles on my mongoinstance

use mydb
db.createUser(
  {
    user: "dbUser",
    pwd: "dbPassword",
    roles: [ { role: "dbOwner", db: "mydb" } ]
  }
)


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

MongoDb is up & running using above credentials, Now when i try to take mongodump using below command in terminal

mongodump --host localhost --port 27017 -u dbUser -p dbPassword --authenticationDatabase mydb

i am getting below error, not able to resolve this

connected to: localhost:27017
assertion: 13 not authorized on admin to execute command { getParameter: 1, authSchemaVersion: 1 }

Any idea? where i am doing wrong?

Upvotes: 4

Views: 13357

Answers (3)

Aero Wang
Aero Wang

Reputation: 9217

userAdminAnyDatabase is not enough to do mongodump on all the dbs that's why you are getting this error. You will need a super user that has:

userAdminAnyDatabase
readWriteAnyDatabase
clusterAdmin

privileges to run mongodump on all dbs.

OR you just need 'backup' privilege

db.grantRolesToUser('username', [{
  role: 'backup',
  db: 'name of ur authentication db'
}])

Upvotes: 0

Akhil
Akhil

Reputation: 6697

As suggested by @wdberkeley, problem got resolved by passing db name as parameter

below command runs fine

mongodump --host localhost --port 27017 -u dbUser -p dbPassword -d mydb

Upvotes: 16

Dineshaws
Dineshaws

Reputation: 2083

mongodump is not a Mongo shell command, it's an operating system command.

Just like you run mongo.exe to start the shell from OS prompt, you should run mongodump the same way from OS prompt. Example:

mongodump --host localhost --port 27017 -u dbUser -p dbPassword --authenticationDatabase mydb

Thanks

Upvotes: 8

Related Questions