Mongodb Atlas: not authorized on admin to execute command

纵饮孤独 提交于 2019-12-05 14:13:58

问题


I have a MongoDB Atlas cluster within which I am trying to simply copy a database within the same instance. Unfortunately, every time I try to run db.copyDatabase() or copydb admin command, I get the following error:

not authorized on admin to execute command

Which is very strange, because I just have one user, and it has access to everything, at least as far as I can tell on atlas:

I did some search in stackoverflow, but it looked like most of the answers pertain to mongod instances running locally, and not ones running in atlas... Did I setup the user wrong?


回答1:


I ended up asking this question to MongoDB University discussion board. In case anyone comes across this, this is apparently because I am using a free cluster.




回答2:


I had the same issue when I was trying to connect to a cluster with Node.js version 3.0 or later and using the link below:

mongodb+srv://username:password@cluster0-eoowo.mongodb.net/test?retryWrites=true

By selecting version 2.2.12 or later and using the link provided, everything went well

mongodb://username:password@cluster0-shard-00-00-eoowo.mongodb.net:27017,cluster0-shard-00-01-eoowo.mongodb.net:27017,cluster0-shard-00-02-eoowo.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin&retryWrites=true




回答3:


This drove me insane... Turns out the standard link provided by MongoDB was trying to name my default database "admin". Change link from

mongodb+srv://username:password@portfoliosite-ezeot.mongodb.net/admin?retryWrites=true&w=majority

to

mongodb+srv://username:password@portfoliosite-ezeot.mongodb.net/test?retryWrites=true&w=majority

You can put any word in for test just not admin. Hope this helps!




回答4:


just use this version and then copy its link and replace the username and password from your mongodb atlas that have the permision to read and write and it will connect i was also having the same problem spent a lot of time to solve this then i tries 2.2.12 version and it workerd.




回答5:


I had faced a similar obstacle and spent hours, the problem was with the connection string provided by mongodb atlas which is: mongodb+srv://username:password@clusterName-jynkd.mongodb.net/test?retryWrites=true

I used a different connection string and worked perfectly. This is it: mongodb://username:password@clusterName+port/yourdb?retryWrites=true&ssl=true&authSource=admin. Make sure the clustername + port are like this: clusterName-shard-00-00-jynkd.mongodb.net:27017




回答6:


this error is because you are trying create the colecction above admin, in atlas this isn't possible because securty.

in this case you need to use the word key use [collection_name]

this is the link for this answer.

it is in spanish.

https://victorroblesweb.es/2016/12/24/crear-una-base-datos-mongodb/




回答7:


In case you have been using mongoose, I solved a similar error updating mongoose to latest version (based on this post).



来源:https://stackoverflow.com/questions/49101567/mongodb-atlas-not-authorized-on-admin-to-execute-command

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!