Actualmente estoy usando MongoDB para registrar registros de aplicaciones, y aunque estoy bastante contento con el rendimiento y con poder volcar datos estructurados arbitrarios en los registros, me preocupa el mutabilidad de los registros de registro una vez almacenados.Colecciones de solo escritura en MongoDB
En una base de datos tradicional, estructuraría las concesiones para mis tablas de registro de modo que el usuario de la aplicación tuviera los privilegios INSERTAR y SELECCIONAR, pero no ACTUALIZAR o ELIMINAR. Del mismo modo, en CouchDB, podría escribir una función de validación de actualización que rechazó todos los intentos de modificar un documento existente.
Sin embargo, no he podido encontrar una forma de restringir las operaciones en una base de datos o colección MongoDB más allá de los tres niveles de acceso (sin acceso, solo lectura, "modo dios") documentado en security topic en la wiki de MongoDB .
¿Alguien más ha implementado MongoDB como una tienda de documentos en un entorno en el que la inmutabilidad (o al menos el seguimiento de cambios) para documentos era un requisito? ¿Qué trucos o técnicas utilizó para asegurarse de que el código de la aplicación mal escrita o maliciosa no pueda modificar o destruir los registros de registro existentes? ¿Debo completar mi registro de MongoDB en una capa de servicio que refuerza la política de solo escritura, o puedo usar alguna combinación de configuración, pirateo de consultas y replicación para garantizar que se mantenga un registro consistente auditable?
Dado que no parece haber una forma de horneado, en realidad he implementado un proxy TCP simple que se encuentra frente a MongoDB y filtra los mensajes enviados al servidor inspeccionando el código de operación: http: // gist.github.com/328486 – rcoder
Gracias por publicar la esencia. La configuración de tu proxy es muy buena y podría ser útil para un proyecto de tipo empresarial en el que pueda estar trabajando prácticamente por lo mismo (pista de auditoría). –
Estaba buscando exactamente lo mismo. En mi humilde opinión, esta es la mayor falla en MongoDB en este momento. –