Overview
このガイドでは、 MongoDB Serverで利用可能な認証メカニズムを使用してMongoDBを認証する方法を学びます。認証メカニズムは、ドライバーとサーバーが接続前にクライアントの ID を確認し、セキュリティを確保するためのプロセスです。
MongoDB Edition との互換性
次の表は、 MongoDBでサポートされている認証メカニズムと、各メカニズムが互換性があるMongoDB Serverエディションを示しています。 アプリケーションでそのメカニズムを使用する方法の詳細については、メカニズムの名前をクリックしてください。
認証メカニズム | Atlas | Enterprise Advanced | Community |
---|---|---|---|
はい | はい | はい | |
はい | はい | はい | |
はい | No | No | |
はい | はい | No | |
No | はい | No |
認証のトラブルシューティング
このセクションでは、一般的な認証エラーとその解決方法について説明します。
認証がオンの状態でローカルデータベースを読み取る場合のOperationFailure
local
データベースを読み込もうとした場合、次のエラーが発生した場合
Mongo::Error::OperationFailure: not authorized on local to execute command { find: "oplog.rs", filter: { ts: { $gte: Timestamp 1497449043000|0 } }, sort: { $natural: 1 } } (13)
これを修正するには、ユーザーのロールを調整して、ユーザーが ローカルデータベースに対する特権を持つようにします。oplogにアクセスしたい場合は、ローカルデータベースの oplog.rs
コレクションへの読み取りアクセス権を持つカスタムロールを作成することもできます。ロールの詳細については、サーバー マニュアルの ロール マネジメント メソッド を参照してください。
Mongo::Auth::認証されていないユーザーのアクセスは許可されていない
一部のユーザーは、次のエラーが発生していると報告します。
Mongo::Auth::Unauthorized: User ... is not authorized to access ...
Rubyドライバー バージョン 2.5 以降にアップグレードした後、ドライバーはデフォルトで SCRAM認可メカニズムを使用するように変更されました。このエラーは、ユーザーが作成された認可メカニズムが、ドライバーで使用される認可メカニズムと一致しない場合に発生することがあります。優先認可メカニズムは、mongoid.yml
ファイルで auth_mech
オプションを使用して指定できます。