MongoDB Dr. BAATI Dr. BAATI ● système de gestion de base de données NoSQL orien

MongoDB Dr. BAATI Dr. BAATI ● système de gestion de base de données NoSQL orientée documents ´ ● crée en 2007 ● open-source ● développée en C++ ● disponibilité de plusieurs fonctionnalités SQL (COUNT, GROUP BY, ORDER BY, SUM...) ● possibilite d'acceder aux données via une console JavaScript ● des drivers disponibles pour plusieurs langages de programmation (Java, JavaScript, PHP , Python, Ruby...) ● données stockées sous format JSON (JavaScript Object Notation) ● SGBD NoSQL le plus populaire en 2017 ● utilisé par MTV, Disney, Doodle, Adobe, eBay... Dr. BAATI SQL vs MongoDB ● Base = Base ● Table = Collection ● Enregistrement (tuple) = Document ● En BDR, tous les tuples d’une table ont les mêmes champs (mais les valeurs peuvent être différentes (les valeurs sont affectées à des colonnes) ● Dans une collection MongoDB, les documents peuvent ne pas avoir un champ partage (pas de colonnes dans un document MongoDB). Dr. BAATI Présentation de MongoDB Prise en main de MongoDB Travailler avec les documents Réplication et Sharding Dr. BAATI Instance mongodb Dr. BAATI Arrêt démarrage Dr. BAATI Dr. BAATI Les outils et commandes de mongodb Dr. BAATI Architecture de mongodb Dr. BAATI Utilisation des bases de données mongodb Dr. BAATI Les bases de données Dr. BAATI Dr. BAATI Les espaces de nom - namespace Dr. BAATI Les collections Dr. BAATI Les opérateurs sur les collections Dr. BAATI Les documents Dr. BAATI Les documents : hiérarchie des objets Dr. BAATI Les documents dans mongodb ● Le format JSON/BSON ○ MongoDB stocke les documents au format BSON (Binary JSON) ○ BSON est la représentation binaire des objets JSON (JavaScript Object Notation) Dr. BAATI Les documents : rappel JSON Dr. BAATI Dr. BAATI Les documents Dr. BAATI Dr. BAATI Dr. BAATI Dr. BAATI Dr. BAATI Les opérations CRUD en mongoDB Dr. BAATI Les opérations CRUD en mongoDB Dr. BAATI Les opérations CRUD en mongoDB Dr. BAATI Les opérations CRUD en mongoDB Dr. BAATI Les opérations CRUD en mongoDB Dr. BAATI Les opérations CRUD en mongoDB Dr. BAATI Les opérations CRUD en mongoDB Dr. BAATI Les opérations CRUD en mongoDB Dr. BAATI Les opérations CRUD en mongoDB Dr. BAATI Les opérations CRUD en mongoDB Dr. BAATI Patrons de conception appliqués en MongoDB Imbrication ou références Dr. BAATI Patrons de conception appliqués en MongoDB Imbrication ou références Dr. BAATI Patrons de conception appliqués en MongoDB Imbrication ou références Dr. BAATI Patrons de conception appliqués en MongoDB Imbrication ou références Dr. BAATI Patrons de conception appliqués en MongoDB Imbrication ou références Dr. BAATI Patrons de conception appliqués en MongoDB Imbrication ou références Dr. BAATI Patrons de conception appliqués en MongoDB Imbrication ou références Dr. BAATI Patrons de conception appliqués en MongoDB Imbrication ou références Dr. BAATI Patrons de conception appliqués en MongoDB Imbrication ou références Dr. BAATI Patrons de conception appliqués en MongoDB Imbrication ou références Dr. BAATI Patrons de conception appliqués en MongoDB schémas polymorphiques et POO Dr. BAATI Patrons de conception appliqués en MongoDB schémas polymorphiques et POO Dr. BAATI Patrons de conception appliqués en MongoDB schéma polymorphique et données semi-structurées Dr. BAATI Patrons de conception appliqués en MongoDB schéma polymorphique Dr. BAATI Insertion d’un document Dr. BAATI Consultation des collections Dr. BAATI Interrogation d’une collection Dr. BAATI Interrogation d’une collection Dr. BAATI Interrogation d’une collection Dr. BAATI Interrogation d’une collection Dr. BAATI Interrogation d’une collection Dr. BAATI Interrogation d’une collection - fonctions de groupe Dr. BAATI Interrogation d’une collection Dr. BAATI Interrogation d’une collection Dr. BAATI Interrogation d’une collection Dr. BAATI Interrogation d’une collection BSON Types — MongoDB Manual Dr. BAATI Interrogation d’une collection BSON Types — MongoDB Manual Dr. BAATI Interrogation d’une collection BSON Types — MongoDB Manual Dr. BAATI Interrogation d’une collection Gestion des index Dr. BAATI Gestion des index Dr. BAATI Gestion des index Dr. BAATI Gestion des index MongoDB – Gestion des utilisateurs Dr. BAATI Gestion des utilisateurs Par défaut, Mongo est accessible sans authentification et permet toutes les actions sur la base. Cette configuration doit être modifiée via le fichier de configuration /etc/mongod.conf : # network interfaces . net: . port: 27017 . # n'autorise que l'ip localhost (réglage par défaut) . bindIp: 127.0.0.1 . Dr. BAATI De manière similaire à MySQL, vous ajoutez des utilisateurs et leur attribuez des droits (ici des rôles, sur divers bases). Exemple créer un utilisateur “test” qui peut lire et écrire dans la base “blog_test” : # on se place dans la base de données "test_blog" use test_blog db.createUser( { user: "test", pwd: "azertyytreza", roles: [ { role: "readWrite", db: "test_blog" }, # on peut ajouter d'autres rôles sur d'autres bases { role: "read", db: "test_shop" } ] } ) Dr. BAATI Une fois les utilisateurs créés, il faut configurier mongo pour qu’il demande les accès. Pour cela, dans le fichier de config – situé dans /etc/mongod.conf – il faut ajouter le paramètre de sécurité correspondant : # sécurity est normalement commenté, il faut le décommenter # ou l'ajouter s'il n'existe pas # et ajouter la ligne suivante security: authorization: enabled # vous pouvez aussi démarrer mongo avec le mode auth directement depuis la ligne de commande mongod --auth Si vous avez modifié le fichier de config, il faut que vous redémarriez mongo pour que les changements s’appliquent. Pour cela, faites sudo service mongod restart Dr. BAATI Attention, si vous créez un utilisateur non administrateur et que vous activez ensuite l’authentification, vous ne pourrez plus créer d’autres utilisateurs. Pour créer un utilisateur avec les droits administrateur : db.createUser( { user: "admin", pwd: "azertyytreza", roles: [ { role: "dbOwner", db: "blog_test" } ] } ) Bien pratique, vous trouverez la liste des rôles dans la doc et vous pouvez même créer des rôles sur mesure pour plus de souplesse. Dr. BAATI La commande db.getUsers() vous permet de vérifier les utilisateurs d’une base ainsi que leurs rôles. Alternativement, pour lister l’ensemble des utilisateurs vous pouvez exécuter la commande show users depuis la base admin. En outre, il est également possible d’utiliser la commande db.runCommand( { usersInfo: { forAllDBs: true } } ) afin de lister tous les utilisateurs depuis n’importe quelle base. Vous pouvez changer le mot de passe d’un utilisateur avec db.changeUserPassword("username", "newPass") et effacer un utilisateur avec db.dropUser("username"). Ces deux commandes nécessitent les privilèges administrateur et elles doivent être exécutées depuis la base à laquelle les utilisateurs sont liés. Dr. BAATI Il est possible d’ajouter et révoquer des droits ultérieurement. Nous utiliserons pour cela les commandes db.grantRolesToUser et db.revokeRolesFromUser : # il faut être placé dans la bonne base… # vous commencez à avoir l'habitude # pour ajouter des droits db.grantRolesToUser( "test", [ { role: "readWrite", db: "logs" } ] ) # et pour enlever des droits db.revokeRolesFromUser( "test", [ { role: "readWrite", db: "logs" } ] ) Dr. BAATI Connexion Une fois les utilisateurs créés et la base paramétrée pour passer en mode “authorization”, il faudra que vous vous connectiez avec vos identifiants, sinon, vous serez jetés ! Pour ce faire, il faut préciser le login et le mot de passe ainsi que la base à laquelle l’utilisateur est rattaché : mongo -u test -p azertyyterza --authenticationDatabase blog_test # il est aussi possible de se logger après la connexion mongo use blog_test db.auth("test", "azertyyterza") uploads/s1/ideas-adm-mongodb.pdf

  • 43
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Nov 07, 2022
  • Catégorie Administration
  • Langue French
  • Taille du fichier 3.4910MB