問題は、データベースユーザーがadminで作成されていることです。 dbnameの代わりにデータベース 。
/dbnameを省略します 接続文字列/mongoshell /などからは、接続文字列がadminに対して認証されることを意味します データベース。ドキュメントの引用:
( https://docs.mongodb.com/manual/reference/connection -string /#components )。
/dbnameの場合 が定義されると、接続文字列はdbnameに対して認証されます authSource
でない限り パラメーターは、ユーザーが常駐するデータベースを指定するように構成されています。
authSource=adminを追加することで、これが当てはまることを確認できます。 接続文字列または--authenticationDatabase adminへ mongoシェルコマンド
へ 。
または、db.getUsers()を使用することもできます ユーザーが作成されたデータベースを表示します。