Si Apache CouchDB est l’une des bases de données NoSQL les plus utilisées, les programmeurs ont tout de même quelques réserves sur ses choix de sécurité par défaut potentiellement laxistes. La base de données était comme “ouverte par défaut”. Ceci a été fait pour faciliter la mise en place et le fonctionnement de la base de données. Cela dit, ces choix de conception ont aussi rendu la base de données très vulnérable aux attaques. Plusieurs déploiements de CouchDB auraient été vandalisés en 2017 en raison de configurations par défaut.
Pour résoudre cela, la version 3.0 de CouchDB aborde de front les questions de sécurité, rendant la base de données désormais sécurisée par défaut. CouchDB 3.0 suit désormais la plupart des pratiques de sécurité de la vieille école, les pratiques des bases de données SQL. Vous devez fournir à présent un mot de passe administrateur pendant l'installation. En plus de cela, toutes les bases de données nouvellement créées sont maintenant accessibles uniquement aux utilisateurs administrateurs du serveur par défaut, au lieu d'être lisibles et écrisibles par tous.
CouchDB 3.0 ajoute aussi des rôles d'utilisateur plus granulaires. À titre illustratif, le nouveau rôle système “_metrics” permet aux utilisateurs d'obtenir des statistiques système à partir des points de terminaison de l'API CouchDB sans autorisation d'administrateur. À partir de CouchDB 3.0, vous avez la possibilité d’ajouter des partitions lorsque vous configurez la base de données. Les partitions regroupent les documents selon une clé de partition et les stockent ensemble dans un seul tesson. Cela accélère les recherches de données normalement conservées ensemble.
Toujours pour améliorer les performances, CouchDB 3.0 ajoute aussi le fractionnement des tessons. C’est une amélioration de la technologie de fragmentation existante dans CouchDB qui permet à une base de données d'être divisée ou partagée sur plusieurs nœuds. Par contre, il y aurait un inconvénient. C’est au moment de l’installation que vous devez décider du nombre de tessons et de leur emplacement. Vous ne pouvez pas les retailler après coup. Le fractionnement des tessons vous permet de rééquilibrer les tessons sans avoir à reconfigurer CouchDB.
CouchDB 3.0 continue d’améliorer les performances en ajoutant un contrôle des files d'attente d'E/S. Ce contrôle vous permet de donner la priorité à certaines classes d'opérations d'E/S. Par exemple, si vous avez une base de données à forte capacité de lecture, vous pouvez choisir de permettre aux opérations d'E/S en lecture de contourner la file d'attente pour des raisons de rapidité. La version 2.0 de CouchDB s’appuyait sur un système de recherche en grappe, alimenté par Lucène, fourni par IBM, qui avait la réputation d'être difficile à mettre en place et à utiliser.
CouchDB 3.0 améliore le processus d'installation et de configuration du bundle Lucene, avec des graphiques Kubernetes Helm et des recettes Chef (logiciel de gestion de configuration écrit en Ruby) pour automatiser le processus. Les autres améliorations de CouchDB 3.0 sont :
- mise à jour du moteur JavaScript moderne SpiderMonkey 60 ;
- réchauffeur d'index de vue automatique ;
- amélioration des installateurs pour Windows ;
- les binaires macOS sont désormais notariés pour une prise en charge complète et future de Catalina ;
- etc.
Source : CouchDB
Et vous ?
Que pensez-vous de CouchDB 3.0 ?
Voir aussi
ouchDB : la base de données NoSql arrive sur Windows. Ce projet open-source serait plus rapide et plus simple que les SGBD classiques
Apache CouchDB 1.3.0 disponible, amélioration de l'interface et hash des mots de passe pour le SGBD NoSQL
Les développeurs de CouchDB et SQLite créent UnQL, le nouveau langage de requêtes unifié pour les SGBD NoSQL