J'ai posé cette question à plusieurs reprises sur les listes de diffusion de CouchDB, et n'a jamais eu de réponse.
Il y a un certain nombre de choses que couchdb manque.
L'un d'eux est le document de sécurité de niveau qui:
- autoriser uniquement certains utilisateurs de visualiser un filtre doc
- les documents indexés dans une vue sur une base de l'autorisation de niveau utilisateur
Je ne pense pas qu'il y ait une solution aux considérations d'autorisation avec l'implémentation actuelle de couchdb. Une solution consisterait à utiliser un outil d'indexation externe tel que lucene, à étiqueter vos documents avec des droits d'utilisateur, puis à émettre une requête lucene avec la définition de l'utilisateur afin d'obtenir les docs. Cela implique également une charge supplémentaire sur vos serveurs (Lucene requiert une JVM) et un délai supplémentaire pour que les données soient disponibles (temps d'indexation Lucene ...)
En ce qui concerne la solution de plusieurs bases de données, il existe un cadre de langage implémentations qui ne permettent tout simplement pas d'utiliser plus d'une base de données (par exemple couch_potato pour Ruby). Avoir plusieurs bases de données signifie également que vous aurez plusieurs processus de réplication si vos bases de données sont répliquées.
Cela signifie également que les vues seront mises à jour pour chaque base de données.Dans certains cas, il vaut mieux avoir des vues énormes indexées dans une base de données unique, mais cela signifie également que des utilisateurs distincts pourraient ne pas être à jour pour une seule source d'information (certains auront leurs vues mises à jour, d'autres pas). Vous ne pouvez donc pas garantir que les données sont cohérentes pour tous les utilisateurs. Donc, à moins que quelque chose ne soit implémenté dans le noyau du canapé pour gérer les autorisations au niveau du document, CouchDB ne semble pas approprié pour la gestion des données avec des contraintes de confidentialité.
Les autorisations de niveau document sont saturées de problèmes. Voici une page sur le wiki de CouchDB expliquant pourquoi, incluant un lien en bas d'une discussion sur la liste de diffusion des développeurs de CouchDB: http://wiki.apache.org/couchdb/PerDocumentAuthorization –