10

私は現在、MongoDB を使用してアプリケーション ログを記録しています。パフォーマンスと、任意の構造化データをログ レコードにダンプできることの両方に非常に満足していますが、一度保存されたログ レコードの可変性に悩まされています。

従来のデータベースでは、アプリケーション ユーザーが INSERT および SELECT 権限を持ち、UPDATE または DELETE 権限を持たないように、ログ テーブルの付与を構成していました。同様に、CouchDB では、既存のドキュメントを変更しようとする試みをすべて拒否する更新バリデーター関数を作成できます。

ただし、 MongoDB wikiのセキュリティ トピックに記載されている 3 つのアクセス レベル (アクセスなし、読み取り専用、「god モード」) を超えて、MongoDB データベースまたはコレクションの操作を制限する方法を見つけることができませんでした。

ドキュメントの不変性 (または少なくとも変更の追跡) が必要な環境で、MongoDB をドキュメント ストアとしてデプロイした人はいますか? 不適切に記述されたアプリケーション コードや悪意のあるアプリケーション コードが既存のログ レコードを変更または破壊できないようにするために、どのようなトリックまたはテクニックを使用しましたか? 書き込み専用ポリシーを適用するサービス レイヤーで MongoDB ロギングをラップする必要がありますか? それとも、構成、クエリ ハッキング、およびレプリケーションを組み合わせて使用​​して、一貫性のある監査可能なレコードを維持することができますか?

4

3 に答える 3

10

最善の策は、MongoDB へのアクセスを、特定のコントラクトを強制するサービス レイヤーにまとめることです。非常に多くの異なるケースがあり、それらすべてを正しく解決するのは難しいため、きめ細かなアクセス制御についてはあまり行っていません。したがって、ほとんどの場合、これらの種類のコントロールを実装するのはアプリケーション層次第です。

于 2010-03-08T21:53:58.047 に答える
0

MongoDB 1.3.2+ では、 user にいくつかの制限を追加できます:

db.addUser("guest", "passwordForGuest", true)

しかし、それは今だけ存在しているだけで、良くはありません。多分あなたはいくつかの機能要求を追加することができます

MongoDB ドキュメントの情報を参照してください: http://www.mongodb.org/display/DOCS/Security+and+Authentication

于 2010-03-08T21:03:31.383 に答える