ユーザーの役割では問題は解決しません。アカウントに 1 人のユーザーを削除する権限がある場合、誤ってすべてのユーザーを削除してしまう可能性があります。アカウントに 1 人のユーザーの属性を更新する権限がある場合、誤ってすべてのユーザーを更新する可能性があります。
ただし、これには簡単な修正があります。
ステップ 0:データベースをバックアップします。また、バックアップを定期的にテストしてください。また、バックアップが実行されなかった場合やエラーが発生した場合にアラートが表示されるようにしてください。レプリカ セットはバックアップではありません。私はこれが明白であることを知っていますが、明らかにそれは誰にとっても明らかではありません.
ステップ 1:データベース用のWeb 管理GUI インターフェースを作成します。これには 1 日か 2 日しかかかりません。また、秘書やインターンがデータを心配することなく使用できるほど簡単なはずです。(時間がかかると思われる場合は、より多くの機能を備えたフレームワークを見つけてください。管理コンソールは、アプリと同じ言語で記述する必要さえありません。)
ステップ 2:データの移行 (データベースのメンテナンスの変換) は、常にソース管理にチェックインされたスクリプトから実行し、事前に非本番環境でテストする必要があります。スクリプトは のように単純なものmongo -e "foo.update(blah)"
でもかまいませんが、切り貼りエラーを避けるためにスクリプトとして実行する必要があります。理想的には、すべての移行のチェックリストを作成することもできます。(最近のバックアップがあることを確認してください。事前にデータベース ログとシステム負荷を確認してください。移行が成功したかどうかを示す前後のクエリを記述してください...)
ステップ 3:これで、本番の Mongo コンソールを使用する必要がなくなりました。だからしないでください。これは開発用の便利なツールですが、ローカルの開発データベースでのみ必要です。
上記のロールは、読み取り専用クエリに役立つ場合があります。ただし、非マスター レプリカ セット メンバーに対しては既にそれを行うことができます。
tl;dr:カウボーイの管理手法を使用してかなりのことを行うことができますが、最終的には、すべてを自動化する方が優れている (そしてそれほど手間がかからない) ことがわかります。