2011-06-23 7 views
1

Lurker de longue date, première fois poster, s'il vous plaît ours avec moi. J'essaie de configurer un environnement Mongodb sécurisé et partitionné. Je voudrais utiliser la capacité Autosharding de Mongo, car je suis un peu nouveau dans les bases de données et dans un planning serré.Mongodb autosharding vs authentification

Il semble que l'autosharding ne s'applique qu'à des collections individuelles (tables), mais je ne souhaite pas que les utilisateurs aient accès à l'intégralité de la collection. De plus, mongoDB n'autorise l'authentification que dans les bases de données, donc une fois authentifié, un utilisateur peut voir 1) chaque collection dans la base de données et 2) toutes les données dans chaque collection. Donc, pour autant que je sache, je peux avoir une autosharding et pas d'authentification, ou un sharding manuel et une authentification.

Je voudrais le meilleur des deux mondes, à savoir: l'autosharding et l'authentification. Est-ce possible? Si non, comment devrais-je faire pour le sharding manuel dans MongoDB?

Un cas d'utilisation simplifié de ce système: collection 'Utilisateurs' a des données sur chaque utilisateur. Je veux authentifier l'utilisateur X afin que X ne puisse voir que les données de X dans la collection de l'utilisateur. Et les utilisateurs sont répartis sur plusieurs serveurs partitionnés (sharded) par user_name. MongoDb n'a pas d'authentification comme les bases de données SQL traditionnelles.

Répondre

5

En fait, si vous lisez le manuel, il est recommandé d'utiliser un environnement sécurisé au lieu d'utiliser l'authentification. Tout contrôle d'accès à vos données serait implémenté dans votre application.

Même avec le SQL traditionnel, l'accès n'est pas contrôlé par ligne. C'est généralement quelque chose mis en œuvre au niveau de l'application en fonction d'une sorte de clé dans les données.

+0

grâce aux données. Je pense que je vais essayer un système hybride de partitionnement manuel par l'utilisateur, de sorte que chaque utilisateur ait sa propre base de données, puis chaque partition userdb. Je vais probablement également mettre en place une sorte de sécurité à travers un client pour l'ensemble du système. – jacobra

Questions connexes