2011-05-02 7 views
3

J'essaye de configurer une base de données CouchDB qui pourrait être publiquement accessible en écriture et seulement lisible par le rôle "admin". Comment puis-je faire ceci. Existe-t-il une fonction validate_doc_update similaire pour accéder à un document?Base de données en écriture seule CouchDB

+0

Je voudrais stocker les données de journalisation/d'analyse dans la base de données qui ne devraient pas être partagées avec quelqu'un d'autre ... dommage que cette fonctionnalité ne soit pas disponible sans un serveur d'applications pour gérer l'élément de sécurité. –

Répondre

1

Une solution de contournement possible consisterait à "abuser" d'Apache pour cela (mais pas à 100%):

Vous pouvez utiliser Apache pour interdire GET de tout le monde, sauf des hôtes spécifiques qui sont ceux utilisés par l'administrateur ... ainsi, les utilisateurs peuvent écrire, mais ne peuvent pas lire et l'administrateur peut lire ...

Vous pouvez même avoir des URL différentes pour l'admin (lecture + écriture) et les utilisateurs (écriture seulement) si vous configurez Apache comme proxy inverse ...

1

Découvrez sur le wiki this page une introduction à la configuration de la sécurité en lecture/écriture au niveau de la base de données.

À partir de CouchDB 1.1.0, il n'est pas possible d'avoir un accès en écriture mais pas un accès en lecture à une base de données. Ce que vous pouvez faire est d'écrire dans la base de données A puis de le répliquer dans la base de données B, et seul l'administrateur peut lire la base de données B.

+0

Je n'ai trouvé aucun moyen de faire ce que je veux dans ce document. Le fait est que lorsque vous affectez un utilisateur Reader ou un rôle de lecteur à une base de données, la base de données devient privée (vous devez être authentifié pour écrire). – Maxime

+0

Malgré que cette réponse vient de mon ennemi juré, j'ai édité pour recommander la solution de contournement la plus courante et +1 :) – JasonSmith

Questions connexes