Utilisation de l'API Oracle Database pour MongoDB

L'API Oracle Database pour MongoDB permet de se connecter à Oracle Autonomous Database à l'aide d'outils et de pilotes de langage MongoDB.

L'API Oracle Database pour MongoDB utilise les fonctionnalités de base de données convergées d'Autonomous Database pour gérer plusieurs types de données, y compris les données JSON, au sein d'une base de données unique. Par exemple, ces fonctionnalités de base de données convergées vous permettent d'utiliser SQL pour interroger ou mettre à jour des données JSON.

Remarque

MongoDB requiert que vous configuriez l'accès réseau pour utiliser des listes de contrôle d'accès ou que vous définissiez une adresse privée pour l'instance Autonomous Database.

Pour plus d'informations, reportez-vous à API Oracle Database pour MongoDB.

Pour plus d'informations, reportez-vous à A propos d'Autonomous JSON Database.

Pour plus d'informations, reportez-vous à A propos des types de charge globale Autonomous Database.

Rubriques

Configuration de l'accès pour MongoDB et activation de MongoDB

L'API Oracle Database pour MongoDB vous permet d'utiliser une instance Oracle Autonomous Database en tant que banque de données.

Pour utiliser l'API MongoDB, vous pouvez créer et configurer une instance Autonomous Database ou modifier la configuration d'une instance Autonomous Database existante.

Remarque

MongoDB requiert que vous configuriez l'accès réseau pour utiliser des listes de contrôle d'accès ou que vous définissiez une adresse privée pour l'instance Autonomous Database. Outre la configuration de l'accès réseau, vous devez activer l'API MongoDB sur l'instance Autonomous Database.

Configuration de l'accès pour MongoDB

Pour utiliser l'API MongoDB, vous pouvez créer et configurer une instance Autonomous Database ou modifier la configuration d'une instance Autonomous Database existante en configurant des listes de contrôle d'accès ou en définissant une adresse privée.

Configuration d'une nouvelle instance Autonomous Database pour MongoDB

Suivez les étapes décrites dans Provisionnement ou clonage d'une instance Autonomous Database, jusqu'au point où vous sélectionnez votre type d'accès réseau.

Description de l'image adb_network_access_acl_provision.png ci-après
Description de l'illustration adb_network_access_acl_provision.png

A ce stade, pour utiliser l'API Oracle Database pour MongoDB, configurez l'accès sécurisé en sélectionnant et en configurant l'un des types d'accès réseau suivants :

  • Accès sécurisé à partir des adresses IP et des réseaux cloud virtuels autorisés uniquement

  • Accès à l'adresse privée uniquement

    Pour plus d'informations sur la configuration d'une instance Autonomous Database avec une adresse privée, reportez-vous à Configuration de l'accès réseau avec des adresses privées.

Configuration d'une base de données Autonomous Database existante pour MongoDB

Ouvrez la console Oracle Cloud Infrastructure pour votre instance Autonomous Database.



Remarque

Afin d'utiliser l'API Oracle Database pour MongoDB, le réseau doit être configuré et le type d'accès doit être : Accès sécurisé à partir des adresses IP et des réseaux cloud virtuels autorisés uniquement ou Accès à l'adresse privée uniquement.

Configuration de liste de contrôle d'accès

Pour plus d'informations, reportez-vous à Configuration de listes de contrôle d'accès pour une instance Autonomous Database existante.

Afin de configurer votre liste de contrôle d'accès pour une adresse IP, vous devez obtenir l'adresse IP publique. Il existe plusieurs façons d'afficher votre adresse IP publique :
  • Dans la zone Choisir l'accès réseau, cliquez sur Ajouter mon adresse IP. Cette opération copie votre adresse IP dans le champ Valeurs.

  • Après avoir désactivé le VPN, utilisez le site Web WhatIsMyIP.
  • Après avoir désactivé un VPN, utilisez la commande curl : curl -s https://ifconfig.me.
Remarque

Les adresses IP publiques peuvent changer. Toute modification de votre adresse IP publique nécessitera une modification dans la liste de contrôle d'accès. Si vous ne pouvez pas accéder à votre base de données, vous devez vérifier votre liste de contrôle d'accès.

Types de liste de contrôle d'accès et cas d'emploi

Type de ACL Cas d'emploi Commentaires
Adresse IP Ordinateurs portables de développement local partageant la même adresse IP publique Moyen le plus simple de commencer. Tout ordinateur portable connecté sur ce LAN aura accès à la base de données avec les informations d'identification de la base de données.
Bloc CIDR Ordinateur portable de développement Utilisation de la notation IPv4/32.
Adresses IP séparées par une virgule Petit nombre d'ordinateurs portables de développement local connectés sur des LAN distincts (ayant des adresses IP publiques distinctes) Peut être ennuyeux à gérer avec plus de 10 ordinateurs portables.
Bloc CIDR Ordinateurs portables de développement local connectés sur le même sous-réseau exposé à Internet ( chaque ordinateur portable possède sa propre adresse IP publique) S'appuie sur la notation de bloc CIDR. Pour plus d'informations, reportez-vous à cette calculatrice. Exemple : 89.84.109.0/24 donne 256 adresses IP possibles de 89.84.109.0 à 89.84.109.255
VCN avec bloc CIDR Pour les tests, la production ou le pipeline d'intégration continue et de déploiement continu hébergé sur OCI avec leurs propres instances VCN et Compute Affectez un compartiment OCI par type d'environnement.
Mélange de l'adresse IP et du VCN avec le bloc CIDR Portable de développement local accédant à une base de données Autonomous Database de test avec des connexions de l'environnement de test ou du pipeline d'IC/CD Option de configuration commune pour les tâches de développement en cours.

Activation de l'API MongoDB sur Autonomous Database

Une fois que vous avez configuré l'accès réseau pour l'instance Autonomous Database, activez l'API MongDB.

Afin d'activer l'API MongoDB pour une instance existante, procédez comme suit :

  1. Sur la page de détails de l'instance Autonomous Database, sélectionnez l'onglet Configuration d'outil.
  2. Cliquez sur Modifier la configuration d'outil.
  3. Dans la ligne d'API MongoDB, sélectionnez Activer l'outil dans la colonne Activé.
  4. Cliquez sur Appliquer.

L'état de cycle de vie est mis à jour jusqu'à l'activation de MongoDB.

Vous pouvez également activer l'API MongoDB lorsque vous provisionnez ou clonez une instance en sélectionnant Afficher les options avancées et en sélectionnant l'onglet Outils.

Pour plus d'informations, reportez-vous à Gestion des outils intégrés Autonomous Database.

Gestion des utilisateurs pour MongoDB

L'API Oracle Database pour MongoDB vous permet d'utiliser une instance Oracle Autonomous Database en tant que banque de données. Si vous voulez utiliser une instance Autonomous Database existante à cette fin, ou si vous avez besoin de le faire, voici le workflow.

Oracle Database API pour MongoDB permet la mise en correspondance des objets Autonomous Database avec les objets MongoDB comme suit :

MongoDB Objet Objet Oracle Autonomous Database
base de données schéma
collecte tableau
document document (dans une colonne)

Par exemple, vous pouvez créer une collection à l'aide de l'API Oracle Database pour MongoDB, comme suit :

  use scott;
  db.createCollection('fruit');

Une table nommée FRUIT est créée dans le schéma SCOTT.

Lorsque vous connectez à l'API Oracle Database pour MongoDB, vous authentifiez à l'aide d'un nom utilisateur et d'un mot de passe Autonomous Database. Cette connexion authentifiée permet ensuite d'accéder aux collections du schéma correspondant. Cet utilisateur doit remplir les conditions suivantes :

Remarque

Le rôle DWROLE dans Autonomous Database contient ces rôles, entre autres.

Il est interdit d'accéder à des schémas qui ne sont pas accordés à l'utilisateur. Par exemple, l'utilisateur SCOTT peut uniquement accéder aux collections du schéma SCOTT. Il existe une exception. Si l'utilisateur authentifié dispose des privilèges Autonomous Database CREATE USER, ALTER USER et DROP USER, il peut accéder à tous les schémas ayant ORDS activé.

De plus, un utilisateur disposant de ces privilèges peut implicitement créer des schémas. Autrement dit, lorsque l'utilisateur crée une collection dans une base de données qui n'existe pas, le schéma est créé automatiquement. Pour plus d'informations, reportez-vous à API Oracle Database pour MongoDB.

Création d'un utilisateur Autonomous Database de test pour MongoDB

Les étapes suivantes utilisent Database Actions pour créer un utilisateur de test avec les rôles appropriés. Vous pouvez également utiliser le SQL dans Database Actions ou d'autres utilitaires de ligne de commande SQL pour exécuter directement les instructions SQL. Pour plus d'informations, reportez-vous à Création d'utilisateurs sur Autonomous Database - Connexion avec un outil client.
  1. Ouvrez la console Oracle Cloud Infrastructure pour votre instance Autonomous Database.
  2. Sélectionnez Database Actions.
  3. Au lancement de Database Actions, sélectionnez Administration > Utilisateurs de base de données.
  4. Sélectionnez + Créer un utilisateur sur la page Utilisateurs de base de données.
  5. Entrez le nom utilisateur et le mot de passe de l'utilisateur de test. Sélectionnez Accès Web et définissez le quota sur le tablespace DATA.
  6. Sélectionnez l'onglet Rôles attribués.
  7. En plus des rôles par défaut, sélectionnez et ajoutez le rôle SODA_APP à l'utilisateur.
  8. Sélectionnez le bouton Créer un utilisateur.
Vous pouvez utiliser cet utilisateur, ou un utilisateur authentifié de manière similaire, à des fins de test. Pour plus d'informations, reportez-vous à Test de la connexion à l'aide de la ligne de commande.

Connexion d'applications MongoDB à Autonomous Database

La connexion de l'application MongoDB à Autonomous Database comprend plusieurs étapes, qui dépendent de vos exigences.

Extraction de la chaîne de connexion MongoDB Autonomous Database

Vous pouvez extraire la chaîne de connexion d'API MongoDB à partir de la console Oracle Cloud Infrastructure.

Une fois que vous avez obtenu la chaîne de connexion d'API MongoDB, vous pouvez utiliser le shell MongoDB, qui est un utilitaire de ligne de commande, pour vous connecter et interroger vos données.

Vous devez d'abord configurer l'accès réseau et activer l'API MongoDB. Pour plus d'informations, reportez-vous à Configuration de l'accès pour MongoDB.

Pour extraire la chaîne de connexion d'API MongoDB, procédez comme suit :

  1. Sur la page de détails de l'instance Autonomous Database, sélectionnez l'onglet Configuration d'outil.
  2. Sur la ligne d'API MongoDB, sous URL d'accès, cliquez sur Copier.
Extraction de la chaîne de connexion Autonomous Database à partir de Database Actions

Utilisez MongoDB Shell, un utilitaire de ligne de commande utilisé pour vous connecter et interroger vos données.
  1. Vous pouvez extraire la chaîne de connexion de votre instance Autonomous Database avec Database Actions.

    Pour plus d'informations, reportez-vous à Accès à Database Actions en tant qu'ADMIN.

  2. Dans le panneau de lancement de Database Actions, sous Services associés, cliquez sur API Oracle Database pour MongoDB.
  3. Sur la page API Oracle Database pour MongoDB, cliquez sur Copier.

Test de la connexion à l'aide de la ligne de commande

  1. Connectez-vous en tant qu'utilisateur de test. Pour plus d'informations, reportez-vous à Création d'un utilisateur Autonomous Database de test pour MongoDB.
    $ mongosh --tls --tlsAllowInvalidCertificates 'mongodb://TESTUSER:<PASSWORD>@<database URL>.
    <OCI region>.oraclecloudapps.com:27017/admin?authMechanism=PLAIN&authSource=$external&ssl=true&loadBalanced=false'
    Current Mongosh Log ID: 614c9e2a01e3575c8c0b2ec7
    Connecting to:         mongodb://TESTUSER:<PASSWORD>@<database URL>.<OCIregion>.oraclecloudapps.com:27017/admin?
    authMechanism=PLAIN&authSource=$external&tls=true&loadBalanced=false
    Using MongoDB:                   3.6.2
    Using Mongosh:                   1.0.7
    For mongosh info see: https://docs.mongodb.com/mongodb-shell/admin
    > show dbs
    testuser    0 B
    > 
    Remarque

    Utilisez l'encodage de pourcentage d'URI pour remplacer les caractères réservés dans l'URI de la chaîne de connexion, notamment les caractères du nom utilisateur et du mot de passe. Voici les caractères réservés et leur encodage de pourcentage :

    ! # $ % & ' ( ) * +
    %21 %23 %24 %25 %26 %27 %28 %29 %2A %2B
    , / : ; = ? @ [ ]
    %2C %2F %3A %3B %3D %3F %40 %5B %5D

    Par exemple, si votre nom utilisateur est RUTH et que votre mot de passe est @least1/2#?, votre chaîne de connexion MongoDB au serveur <server> peut se présenter comme suit :

    'mongodb://RUTH:%40least1%2F2%23%3F@<server>:27017/ruth/ ...'

    Selon les outils ou pilotes que vous utilisez, vous pouvez fournir un nom utilisateur et un mot de passe en tant que paramètres distincts, plutôt que dans le cadre d'une chaîne de connexion URI. Dans ce cas, vous n'aurez probablement pas besoin d'encoder les caractères réservés qu'ils contiennent.

    Voir aussi :

  2. Créer une collection et y insérer des documents.
    testuser> show collections
    
    testuser> db.createCollection( 'fruit' )
    { ok: 1 }
    testuser> show collections
    fruit
    testuser> db.fruit.insertOne( {name:"orange", count:42} )
    {
      acknowledged: true,
      insertedId: ObjectId("614ca31fdab254f63e4c6b47")
    }
    testuser> db.fruit.insertOne( {name:"apple", count:12, color: "red"} )
    {
      acknowledged: true,
      insertedId: ObjectId("614ca340dab254f63e4c6b48")
    }
    testuser> db.fruit.insertOne( {name:"pear", count:5} )
    {
      acknowledged: true,
      insertedId: ObjectId("614ca351dab254f63e4c6b49")
    }
    testuser>
  3. Interrogez la collection à l'aide d'un client SQL tel que Database Actions.
    SELECT
         f.json_document.name, 
         f.json_document.count, 
         f.json_document.color
    FROM fruit f;
    Description de l'image database_actions_sql_for_mongodb_use.png
    Description de l'illustration database_actions_sql_for_mongodb_use.png

Test de la connexion à l'aide d'une application Node.js

  1. Téléchargez Node.js. Si vous avez déjà téléchargé ou installé Node.js pour votre environnement, vous pouvez ignorer cette étape.
    $ wget https://nodejs.org/dist/latest-v14.x/node-v14.17.5-linux-x64.tar.xz
  2. Extrayez le contenu de l'archive Node,js. Si vous avez déjà téléchargé ou installé Node.js pour votre environnement, vous pouvez ignorer cette étape.
    $ tar -xf node-v14.17.5-linux-x64.tar.xz
  3. Configurez la variable d'environnement PATH. Si vous avez déjà téléchargé ou installé Node.js pour votre environnement, vous pouvez ignorer cette étape.
    $ export PATH="`pwd`"/node-v14.17.5-linux-x64/bin:$PATH
  4. Testez votre connexion avec un exemple de Javascript.
    1. Créer un répertoire.
      $ mkdir autonomous_mongodb
      $ cd autonomous_mongodb
      $ npm init –y
    2. Installez la dépendance MongoDB.
      $ npm install mongodb
    3. Créez une application JavaScript nommée connect.js.
      const { MongoClient } = require("mongodb");
      const uri =
         "mongodb://TESTUSER:<PASSWORD>@<Database URI>.<OCI region>.oraclecloudapps.com:27017/admin?authMechanism=PLAIN&authSource=$external&ssl=true&loadBalanced=false";
      
      const client = new MongoClient(uri);
      
      async function run() {
        try {
              await client.connect();
      
              const database = client.db('admin');
              const movies = database.collection('movies');
      
              // Insert a movie
              const doc = { title: 'Back to the Future', 
                            year: 1985, genres: ['Adventure', 'Comedy', 'Sci-Fi'] }
              const result = await movies.insertOne(doc);
      
              // Query for a movie that has the title 'Back to the Future' :)
              const query = { title: 'Back to the Future' };
              const movie = await movies.findOne(query);
      
              console.log(movie);
        } finally {
           // Ensures that the client will close when you finish/error
           await client.close();
        }
      }
      run().catch(console.dir);
      
      Remarque

      Utilisez l'encodage de pourcentage d'URI pour remplacer les caractères réservés dans l'URI de la chaîne de connexion, notamment les caractères du nom utilisateur et du mot de passe. Voici les caractères réservés et leur encodage de pourcentage :

      ! # $ % & ' ( ) * +
      %21 %23 %24 %25 %26 %27 %28 %29 %2A %2B
      , / : ; = ? @ [ ]
      %2C %2F %3A %3B %3D %3F %40 %5B %5D

      Par exemple, si votre nom utilisateur est RUTH et que votre mot de passe est @least1/2#?, votre chaîne de connexion MongoDB au serveur <server> peut se présenter comme suit :

      'mongodb://RUTH:%40least1%2F2%23%3F@<server>:27017/ruth/ ...'

      Selon les outils ou pilotes que vous utilisez, vous pouvez fournir un nom utilisateur et un mot de passe en tant que paramètres distincts, plutôt que dans le cadre d'une chaîne de connexion URI. Dans ce cas, vous n'aurez probablement pas besoin d'encoder les caractères réservés qu'ils contiennent.

      Voir aussi :

    4. Exécuter l'exemple. La sortie doit ressembler à ce qui suit.
      $ node connect
      {
        _id: new ObjectId("611e3266005202371acf27c1"),
        title: 'Back to the Future',
        year: 1985,
        genres: [ 'Adventure', 'Comedy', 'Sci-Fi' ]
      }