回答:
最初にスーパーユーザーを追加せずにユーザーを作成したときに、同様の問題が発生しました。次の手順は、問題の解決に役立ちました。
sudo
(sudo vi mongodb.conf
)を使用してMongoDB構成ファイルを開きます。/etc/
フォルダーにあります。"auth = true"
。sudo service mongod stop
)sudo service mongod start
)次に、以下のコマンドを使用して「root」スーパーユーザーを作成します。
use admin
db.createUser({user:"admin",pwd:"password",roles:[{role:"root",db:"admin"}]});
参照用https://docs.mongodb.com/manual/reference/built-in-roles/#superuser-roles
戻ってコメントを外し"auth=true"
ます。mongodbサービスを停止して開始/再起動します。
内部認証を使用したレプリカセットのメンバー間のセキュリティ
キーファイルはレプリケーションの認証に使用されます。
security:
keyFile: <path-to-keyfile>
replication:
replSetName: <replicaSetName>
次のコマンドを使用して、mongodの管理者としてログインできます。
mongo -u __system -p "$(tr -d '\011-\015\040' < path-to-keyfile)" --authenticationDatabase local
あとで、管理ユーザーを作成または変更できます。
内部役割
__system
MongoDBは、レプリカセットメンバーやmongosインスタンスなどのクラスターメンバーを表すユーザーオブジェクトにこのロールを割り当てます。ロールは、データベースのオブジェクトに対してアクションを実行する権利を所有者に付与します。例外的な状況を除き、アプリケーションまたは人間の管理者を表すユーザーオブジェクトにこのロールを割り当てないでください。
この質問への回答を確認してください、彼らは助けるかもしれません
https://stackoverflow.com/questions/20117104/mongodb-root-user
基本的にサーバーにアクセスできる場合は、Admin
データベースにアクセスできる場合があります。
このページにはもっとありますhttp://docs.mongodb.org/v2.4/reference/user-privileges/
2.6バージョンでは、これが完全に機能する方法が変わることに注意してください。2.6では、http://docs.mongodb.org/manual/security/でさらに時間を費やす必要があります。
Mongoを停止し、管理ファイルを削除してから、Mongoを起動する必要があります
sudo service mongod stop
mv /data/admin.* .
sudo service mongod start