web-dev-qa-db-ja.com

Mongodb Atlas:管理者にコマンドを実行する権限がありません

同じインスタンス内でデータベースを単純にコピーしようとしているMongoDB Atlasクラスターがあります。残念ながら、db.copyDatabase()またはcopydb adminコマンドを実行しようとするたびに、次のエラーが発生します。

not authorized on admin to execute command

これは非常に奇妙なことです。なぜなら、私には1人のユーザーしかいないため、少なくともアトラスでわかる限り、すべてにアクセスできるからです。

enter image description here

私はstackoverflowでいくつかの検索を行いましたが、ほとんどの回答はローカルで実行されているmongodインスタンスに関するものであり、アトラスで実行されているものではないようです...ユーザーを間違って設定しましたか?

13
Seaside9

結局、この質問をMongoDB大学のディスカッションボードに尋ねました。誰かがこれに遭遇した場合、これは明らかに私が無料のクラスターを使用しているためです。

10
Seaside9

このエラーのもう1つの原因は、不正な操作を開始したユーザーとは別のユーザーとしてログインしていることです。_db.killOp_を使用するには、操作を開始したのと同じユーザーとしてmongoシェルにログインする必要があります。

Atlasでは、データベースユーザーはdb.killOp()コマンドを使用して自身の操作を強制終了できます。 atlasAdmin特権を持つアカウントは、そのアカウントによって開始されなかったクラスター上の操作を強制終了できないことは正しいです。

アプリケーションが問題のある操作を開始するために使用したユーザーを使って、mongoシェルで認証すると、db.killOp()を使用してその操作を強制終了できるはずです。

(ソースはアトラスサポートチケットです)

0
willis

Mongooseを使用していた場合、mongooseを最新バージョンに更新する同様のエラーを解決しました(これに基づいて post を使用)。

0
mariano_c

このエラーは、管理者より上のコレクションを作成しようとしているためです。アトラスでは、セキュリティのためにこれは不可能です。

この場合、Wordキーを使用する必要があります。[collection_name]

これはこの回答のリンクです。

スペイン語です。

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

0
camilo lopez