sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo puedo implementar permisos de nivel de campo para MongoDB?

Como en MongoDB 3.4, la granularidad del control de acceso incorporado solo llega hasta el control de acceso de nivel de colección.

Por ejemplo, podría crear un rol definido por el usuario que limite los privilegios para una colección:

privileges: [
  { resource: { db: "db_ANIMAL", collection: "tb_BIRD" },  actions: [ "find", "update" ] }
]

Para limitar el acceso de solo lectura a un subconjunto de datos de la colección, podría considerar usar la nueva funcionalidad Vistas en MongoDB 3.4 o implementar Redacción a nivel de campo usando $redact etapa de agregación (MongoDB 2.6+).

Si necesita un control de acceso más granular para las actualizaciones a nivel de campo, actualmente tendrá que implementarlo en su API o código de aplicación.

Hay algunas solicitudes de características relevantes que tal vez quiera ver/votar en el rastreador de problemas de MongoDB:

  • SERVER-648:Control de acceso a nivel de documento
  • SERVER-27698:vistas materializadas