Création de liens de base de données vers des bases de données non Oracle avec une connectivité hétérogène gérée par Oracle

La prise en charge d'Autonomous Database pour la connectivité hétérogène gérée par Oracle permet de créer facilement des liens de base de données vers des bases de données autres qu'Oracle.

Lorsque vous utilisez des liens de base de données avec une connectivité hétérogène gérée par Oracle, Autonomous Database configure la connexion à la base de données autre qu'Oracle.

Remarque

Avec la connectivité hétérogène gérée par Oracle, la prise en charge concerne les connexions de requête uniquement sur la base de données distante. Autrement dit, les mises à jour ne sont pas prises en charge lors de l'utilisation d'une connectivité hétérogène gérée par Oracle.

Voici un prérequis pour l'utilisation de la connectivité hétérogène gérée par Oracle avec Autonomous Database :

  • Lorsque la base de données cible se trouve sur une adresse publique, la base de données doit être configurée pour autoriser les connexions SSL/TLS entrantes avec des certificats signés CA.

    La connectivité hétérogène gérée par Oracle prend en charge les connexions aux services de base de données cible sur des adresses privées (par exemple, vous pouvez vous connecter à Oracle MySQL Database Service lorsque le service se trouve sur une adresse privée). Lorsque vous connectez à une base de données autre qu'oracle avec une connectivité hétérogène gérée par Oracle sur une adresse privée, la connexion utilise le protocole TCP et ne nécessite pas la configuration de SSL/TLS sur la base de données cible.

    Reportez-vous à Création de liens de base de données vers Oracle MySQL sur une adresse privée avec une connectivité hétérogène gérée par Oracle pour plus d'informations.

Pour créer des liens de base de données vers une base de données autre qu'Oracle à l'aide de la connectivité hétérogène gérée par Oracle, procédez comme suit :

  1. Sur Autonomous Database, créez des informations d'identification permettant d'accéder à la base de données cible. Les valeurs username et password que vous indiquez avec DBMS_CLOUD.CREATE_CREDENTIAL correspondent aux informations d'identification de la base de données cible utilisées dans le lien de base de données.

    Par exemple :

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'AWS_REDSHIFT_LINK_CRED',
        username => 'nick',
        password => 'password'
      );
    END;
    /

    Cette opération stocke les informations d'identification dans la base de données dans un format crypté. Vous pouvez utiliser n'importe quel nom d'informations d'identification. Vous devez indiquer le paramètre credential_name.

    Pour accéder à Google Analytics, Google BigQuery, Google Drive, Youtube, ServiceNow ou Microsoft SharePoint avec OAuth2, les informations d'identification doivent inclure le paramètre params avec la valeur gcp_oauth2.

    Par exemple :

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'SERVICENOW_OAUTH',
        params => JSON_OBJECT(
                     'gcp_oauth2' value JSON_OBJECT(
                            'client_id' value 'CLIENT_ID', 
                            'client_secret' value 'CLIENT_SECRET', 
                            'refresh_token' value 'Refresh_Token')));
    END;
    /

    Pour plus d'informations, reportez-vous à Procédure CREATE_CREDENTIAL.

  2. Créez le lien de base de données vers la base de données cible à l'aide de DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Par exemple, pour créer un lien de base de données vers AWS Redshift, procédez comme suit :

    BEGIN
         DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
              db_link_name => 'AWSREDSHIFT_LINK', 
              hostname => 'example.com', 
              port => '5439',
              service_name => 'example_service_name',
              credential_name => 'AWS_REDSHIFT_LINK_CRED',
              gateway_params => JSON_OBJECT('db_type'  value 'awsredshift'),
              ssl_server_cert_dn => NULL);
    END;
    /

    service_name est le nom de la base de données autre qu'Oracle.

    La valeur de gateway_params db_type que vous indiquez doit être l'une des valeurs prises en charge suivantes :

    Valeur db_type Type de base de données

    awsredshift

    Amazon Redshift

    azure

    Microsoft SQL Server

    Azure SQL

    Azure Synapse Analytics

    db2

    IBM Db2

    google_analytics

    Google Analytics

    google_bigquery

    Google BigQuery

    google_drive

    Google Drive

    hive

    Apache Hive

    mongodb

    MongoDB

    mysql

    MySQL

    mysql_community

    MySQL Community Edition

    postgres

    PostgreSQL

    salesforce

    Salesforce (entreprise)

    servicenow ServiceNow
    sharepoint Microsoft SharePoint

    snowflake

    Neige

    youtube

    YouTube

    Autonomous Database configure et gère automatiquement la connexion sécurisée à une base de données cible, et vos connexions sont cryptées de bout en bout. La connectivité hétérogène gérée par Oracle est préconfigurée avec un portefeuille qui contient la plupart des certificats SSL intermédiaires et racine sécurisés les plus courants. Vous devez donc indiquer la valeur NULL pour le paramètre ssl_server_cert_dn.

    Pour assurer la sécurité lors de l'utilisation de liens de base de données avec la connectivité hétérogène gérée par Oracle, le port de connexion est restreint et SSL/TLS doit être activé. Vous indiquez le port de la base de données cible avec le paramètre port.

    Pour obtenir la liste des types de base de données autre qu'Oracle pris en charge, reportez-vous à Ports et types de base de données pour la connectivité hétérogène gérée par Oracle.

    La vue HETEROGENEOUS_CONNECTIVITY_INFO fournit des informations sur les types de connectivité hétérogène Oracle pris en charge et affiche un exemple de code PL/SQL pour chaque type pris en charge. Pour plus d'informations, reportez-vous à Accès aux informations et exemples de connectivité hétérogène.

    Lorsque vous indiquez le paramètre gateway_params, pour certaines valeurs db_type, des paramètres gateway_params supplémentaires sont pris en charge :

    Valeur db_type Paramètres de passerelle pris en charge avec db_type spécifié
    azure

    Lorsque la valeur db_type est azure, deux paramètres facultatifs, auth_method et domain, prennent en charge l'authentification NTLM/AD.

    Lorsque NTLMv2 est configuré, définissez auth_method=10 et domain sur la valeur de domaine Windows.

    Pour utiliser un mot de passe Azure Active Directory, définissez auth_method=13. N'utilisez pas auth_method=13 pour accéder à une base de données sur site Oracle.

    Pour plus d'informations, reportez-vous à Méthode d'authentification Microsoft SQL Server.

    google_analytics

    Lorsque la valeur db_type est google_analytics, hostname n'est pas utilisé et vous pouvez fournir une valeur telle que example.com.

    Pour db_type google_analytics, les informations d'identification doivent être de type OAuth à l'aide du paramètre params avec les valeurs gcp_oauth2 indiquées (client_id, client_secret et refresh_token). Pour plus d'informations, reportez-vous à Procédure CREATE_CREDENTIAL.

    google_bigquery

    Lorsque db_type est défini sur google_bigquery, le paramètre project est valide. Ce paramètre indique le nom du projet sur google_bigquery et est requis.

    Lorsque la valeur db_type est google_bigquery, hostname n'est pas utilisé et vous pouvez fournir une valeur telle que example.com.

    Pour db_type google_bigquery, les informations d'identification doivent être de type OAuth à l'aide du paramètre params avec les valeurs gcp_oauth2 indiquées (client_id, client_secret et refresh_token). Pour plus d'informations, reportez-vous à Procédure CREATE_CREDENTIAL.

    google_drive

    Pour db_type google_drive, les informations d'identification que vous fournissez avec DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK doivent être des informations d'identification de type OAuth utilisant le paramètre params avec des valeurs gcp_oauth2 indiquées (client_id, client_secret et refresh_token).

    Pour vous connecter à Google Drive et obtenir des données, vous devez fournir les paramètres de passerelle directory_name et file_name. Ces paramètres spécifient un fichier de modèle (fichier REST automatique) qui met en correspondance la réponse JSON avec le modèle relationnel. Le fichier modèle indique les adresses, le mapping de table et le code de réponse HTTP pour le traitement de la réponse JSON. Pour plus d'informations, reportez-vous aux sections Syntaxe des fichiers de modèle et Exemple de fichier de modèle.

    Lorsque vous utilisez le paramètre gateway_params avec db_type google_drive, vous devez fournir au paramètre gateway_params db_type la valeur 'google_drive', les paramètres directory_name et file_name, ainsi que les informations d'identification de type OAuth :

    Le paramètre directory_name indique le répertoire avec le fichier de configuration REST. Vous pouvez créer ce répertoire comme suit :

    create or replace directory google_drive_dir as 'GOOGLE_DRIVE_DIR';

    Obtenir et télécharger le fichier REST automatique dans le répertoire spécifié. Par exemple :

    exec DBMS_CLOUD.get_object('google_drive_dir_cred',
         'https://objectstorage.<...>/google_drive.rest','GOOGLE_DRIVE_DIR');

    Définissez la valeur file_name sur le nom du fichier REST automatique que vous avez téléchargé, "google_drive.rest". Vous pouvez ensuite utiliser le fichier de configuration REST avec OAuth 2.0.

    hive

    Lorsque db_type est défini sur hive, le paramètre http_path est valide. Ce paramètre indique la valeur HttpPath, si nécessaire, pour la connexion à l'instance Hive.

    salesforce

    Lorsque vous utilisez le paramètre gateway_params avec db_type salesforce, vous devez fournir l'option security_token. Le jeton de sécurité est un code alphanumérique sensible à la casse.

    Pour plus d'informations, reportez-vous à Réinitialisation du jeton de sécurité.

    Lorsque vous utilisez le paramètre gateway_params avec db_type salesforce, vous devez fournir le paramètre hostname correct.

    Salesforce fournit deux formes d'URL pour le compte de service Salesforce :

    • xxxx.develop.lightning.force.com forme d'URL
    • Forme d'URL xxxxmy.salesforce.com comme indiqué dans l'onglet Visualiser le profil.

    La connectivité hétérogène gérée par Oracle prend uniquement en charge la forme d'URL xxxxmy.salesforce.com pour la valeur du paramètre hostname.

    servicenow

    Pour vous connecter à ServiceNow et obtenir des données, vous devez indiquer les paramètres de passerelle directory_name et file_name. Ces paramètres indiquent un fichier de modèle (fichier de configuration REST) qui met en correspondance la réponse JSON avec le modèle relationnel. Le fichier de modèle indique les adresses, la correspondance de table et le code de réponse HTTP pour le traitement de la réponse JSON. Pour plus d'informations, reportez-vous aux sections Syntaxe du fichier modèle et Exemple de fichier modèle.

    Lorsque vous utilisez le paramètre gateway_params avec db_type servicenow, deux options sont prises en charge :

    • Authentification de base : vous devez fournir le paramètre gateway_params db_type avec la valeur 'servicenow', et les paramètres directory_name et file_name avec les informations d'identification de type nom utilisateur/mot de passe.

    • Authentification OAuth 2.0 : vous devez indiquer le paramètre gateway_params db_type avec la valeur 'servicenow', les paramètres directory_name, file_name et token_uri, ainsi que les informations d'identification de type OAuth.

      Pour l'authentification OAuth 2.0 avec db_type servicenow, les informations d'identification doivent être de type OAuth à l'aide du paramètre params avec les valeurs gcp_oauth2 indiquées (client_id, client_secret et refresh_token). Pour plus d'informations, reportez-vous à Procédure CREATE_CREDENTIAL.

    Le paramètre directory_name indique le répertoire avec le fichier de configuration REST ServiceNow. Vous pouvez créer ce répertoire comme suit :

    create or replace directory servicenow_dir as 'SERVICENOW_DIR';

    Obtenez et téléchargez le fichier de configuration REST ServiceNow dans le répertoire indiqué. Par exemple :

    exec DBMS_CLOUD.get_object('servicenow_dir_cred',
         'https://objectstorage.<...>/servicenow.rest','SERVICENOW_DIR');

    Définissez la valeur file_name sur le nom du fichier de configuration REST que vous avez téléchargé, "servicenow.rest".

    Vous pouvez ensuite utiliser le fichier de configuration REST ServiceNow avec l'authentification de base ou OAuth2.0. Pour obtenir des exemples, reportez-vous à HETEROGENEOUS_CONNECTIVITY_INFO View.

    sharepoint

    Lorsque vous utilisez le paramètre gateway_params avec db_type sharepoint, indiquez également des valeurs pour auth_uri, scope, service_url et token_uri.

    Pour db_type sharepoint, les informations d'identification que vous fournissez avec DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK doivent être de type OAuth à l'aide du paramètre params avec les valeurs gcp_oauth2 indiquées (client_id, client_secret et refresh_token). Pour plus d'informations, reportez-vous à Procédure CREATE_CREDENTIAL. Générez le fichier refresh_token pour tenant_id.sharepoint.com/.default offline_access. Pour plus d'informations, reportez-vous aux sections suivantes : Déterminer l'étendue et Authentification OAuth 2.0.

    Définissez les valeurs de gateway_params pour db_type sharepoint :

    snowflake

    Lorsque vous utilisez le paramètre gateway_params avec db_type snowflake, utilisez l'identificateur de compte Snowflake en tant que paramètre hostname. Dans ce cas, le pilote ajoute snowflakecomupting.com, de sorte que vous ne transmettez pas explicitement cette partie du nom d'hôte. Pour rechercher votre identificateur de compte Snowflake, reportez-vous à Formats d'identificateur de compte par région et plate-forme cloud.

    Par exemple : pour le compte Snowflake :

    https://example-marketing_test_account.snowflakecomputing.com

    Définissez la valeur hostname sur "example-marketing_test_account".

    Lorsque db_type est défini sur SNOWFLAKE, les paramètres facultatifs role, schema et warehouse sont valides. Ces valeurs indiquent un schéma, un rôle ou une valeur d'entrepôt différent de la valeur par défaut. Exemple :

    gateway_params => JSON_OBJECT(
         'db_type' value 'snowflake',
         'role' value 'ADMIN',
         'schema' value 'PUBLIC',
         'warehouse' value 'TEST' )
    youtube

    Pour vous connecter à YouTube et obtenir des données, vous devez indiquer les paramètres directory_name et file_name. Ces paramètres indiquent un fichier de modèle (fichier de configuration REST) qui met en correspondance la réponse JSON avec le modèle relationnel. Le fichier de modèle indique les adresses, la correspondance de table et le code de réponse HTTP pour le traitement de la réponse JSON. Pour plus d'informations, reportez-vous aux sections Syntaxe du fichier modèle et Exemple de fichier modèle.

    Pour db_type youtube, les informations d'identification doivent être de type OAuth à l'aide du paramètre params avec les valeurs gcp_oauth2 indiquées (client_id, client_secret et refresh_token). Pour plus d'informations, reportez-vous à Procédure CREATE_CREDENTIAL.

    Le paramètre directory_name spécifie le répertoire avec le fichier de configuration REST youtube.

    Par exemple, pour créer ce répertoire et ajouter le contenu requis :

    1. Créez un répertoire sur l'instance Autonomous Database :

      create or replace directory youtube_dir as 'YOUTUBE_DIR';
    2. Obtenez et téléchargez le fichier de configuration REST de repos automatique dans le répertoire indiqué. Exemple :

      exec DBMS_CLOUD.get_object('youtube_dir_cred',
           'https://objectstorage.<...>/youtube.rest','YOUTUBE_DIR');
    3. Définissez la valeur file_name sur le nom du fichier de configuration REST que vous avez téléchargé, 'youtube.rest'.

    Vous pouvez ensuite utiliser le fichier de configuration REST avec OAuth2.0. Pour obtenir des exemples, reportez-vous à HETEROGENEOUS_CONNECTIVITY_INFO View.

    Pour plus d'informations, reportez-vous à CREATE_DATABASE_LINK Procédure.

  3. Utilisez le lien de base de données pour accéder aux données de la base de données cible.

    Exemple :

    SELECT count(*) FROM sales@AWSREDSHIFT_LINK

    Le nom de table que vous indiquez lorsque vous utilisez SELECT avec Google BigQuery doit être entre guillemets. Exemple :

    SELECT count(*) FROM "sales"@GOOGLE_BIGQUERY_LINK
Remarque

Pour les informations d'identification que vous créez à l'étape 1, les informations d'identification de la base de données cible, si le mot de passe de l'utilisateur cible est modifié, peuvent être mises à jour comme suit :

BEGIN
    DBMS_CLOUD.UPDATE_CREDENTIAL (
       credential_name => 'AWS_REDSHIFT_LINK_CRED',
       attribute => 'PASSWORD',
       value => 'password');
END;
/

password est le nouveau mot de passe.

Après cette opération, les liens de base de données existants qui utilisent ces informations d'identification continuent de fonctionner sans qu'il soit nécessaire de supprimer et de recréer les liens de base de données.

Pour plus d'informations, voir :

Création de liens de base de données vers Oracle MySQL sur une adresse privée avec une connectivité hétérogène gérer Oracle

La prise en charge d'Autonomous Database pour la connectivité hétérogène gérée par Oracle permet de créer facilement des liens de base de données vers Oracle MySQL Database Service sur une adresse privée. Lorsque vous utilisez des liens de base de données avec la connectivité hétérogène gérée par Oracle, Autonomous Database configure la connexion à Oracle MySQL Database Service.

Voici les prérequis pour l'utilisation de la connectivité hétérogène gérée par Oracle avec Oracle MySQL Database Service sur une adresse privée :

  • Créez un nom DNS à l'aide d'une zone DNS privée pointant vers l'adresse IP privée de votre instance Oracle MySQL Database Service dans votre VCN. Reportez-vous à DNS privé.
  • Créez une base de données Autonomous Database avec une adresse privée sur le même sous-réseau.
  • Configurez le VCN pour Oracle MySQL Database Service afin d'autoriser les connexions entrantes sur le port 3306.

Pour créer des liens de base de données vers une base de données Oracle MySQL Database Service sur une adresse privée à l'aide de la connectivité hétérogène gérée par Oracle, procédez comme suit :

  1. Sur Autonomous Database, créez des informations d'identification permettant d'accéder à Oracle MySQL Database Service. Les valeurs username et password que vous indiquez avec DBMS_CLOUD.CREATE_CREDENTIAL correspondent aux informations d'identification de l'instance Oracle MySQL Database Service utilisées dans le lien de base de données.
    Remarque

    L'indisponibilité du paramètre credential_name est requise.

    Par exemple :

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'MYSQL_LINK_CRED',
        username => 'NICK',
        password => 'password'
      );
    END;
    /
    

    Cette opération stocke les informations d'identification dans la base de données dans un format crypté. Vous pouvez utiliser tout nom d'informations d'identification.

  2. Créez le lien de base de données vers l'instance Oracle MySQL Database Service à l'aide de DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Par exemple, pour créer un lien de base de données, procédez comme suit :

    BEGIN
         DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
              db_link_name => 'MYSQL_LINK', 
              hostname => 'mysql.example.com', 
              port => '3306',
              service_name => 'mysql.example_service_name',
              ssl_server_cert_dn => NULL,
              credential_name => 'MYSQL_LINK_CRED',
              private_target => TRUE,
              gateway_params => JSON_OBJECT('db_type' value 'mysql'));
    END;
    /
  3. Utilisez le lien de base de données pour accéder aux données de la base de données cible.

    Par exemple :

    SELECT count(*) FROM sales@MYSQL_LINK
Remarque

Pour les informations d'identification que vous créez à l'étape 1, les informations d'identification de la base de données cible, si le mot de passe de l'utilisateur cible est modifié, peuvent être mises à jour comme suit :

BEGIN
    DBMS_CLOUD.UPDATE_CREDENTIAL (
       credential_name => 'MYSQL_LINK_CRED',
       attribute => 'PASSWORD',
       value => 'password');
END;
/

password est le nouveau mot de passe.

Après cette opération, les liens de base de données existants qui utilisent ces informations d'identification continuent de fonctionner sans qu'il soit nécessaire de supprimer et de recréer les liens de base de données.

Pour plus d'informations, voir :

Ports et types de base de données pour la connectivité hétérogène gérée par Oracle

Affiche les bases de données autres qu'Oracle vers lesquelles vous pouvez vous connecter à partir d'Autonomous Database avec la connectivité hétérogène gérée par Oracle, et répertorie la valeur de port prise en charge pour chaque type de base de données. Fournit également un lien dans lequel vous pouvez voir les versions de base de données prises en charge pour chaque type de base de données.

Remarque

Oracle utilise des connecteurs Progress DataDirect. La colonne Prise en charge de la base de données fournit des liens vers le site Web de Progress, où vous pouvez trouver les versions de base de données prises en charge pour chaque type de base de données.
Type de base de données Valeur db_type Port requis Prise en charge de base de données

Amazon Redshift

awsredshift

5 439

Versions d'Amazon Redshift prises en charge

Azure SQL

Microsoft SQL Server

Azure Synapse Analytics

azure

1 433

Versions d'Azure SQL prises en charge

Versions d'Azure Synapse Analytics prises en charge

Apache Hive

hive

443

Versions prises en charge par Hive

Google Analytics

google_analytics

443

Versions prises en charge par Google Analytics

Google BigQuery

google_bigquery

443

Versions prises en charge de Google BigQuery

Google Drive

google_drive

443

Versions prises en charge par Google Drive

Apache Hive

hive

443

Versions prises en charge par Hive

IBM Db2 11.5.6 ou version ultérieure

IBM Db2 11.5.5 ou moins

db2

25 000

50 000

Versions prises en charge d'IBM Db2

Microsoft SharePoint

sharepoint

443

Versions prises en charge de Microsoft SharePoint

MongoDB

mongodb

27 017

MongoDB Versions prises en charge

MySQL

mysql

3 306

MySQL Versions prises en charge

MySQL Community Edition

mysql_community

3 306

 

PostgreSQL

postgres

5 432

PostgreSQL Versions prises en charge

Salesforce (entreprise)

salesforce

19 937

Versions prises en charge par Salesforce

ServiceNow

servicenow

443

ServiceNow Versions prises en charge

Neige

snowflake

443

Versions de Snowflake prises en charge

YouTube

youtube

443 Versions prises en charge par YouTube

Accès à des informations et des échantillons de connectivité hétérogènes

Oracle Autonomous Database fournit des informations de connectivité hétérogènes pour les liens de base de données vers des bases de données autres qu'Oracle.

La vue HETEROGENEOUS_CONNECTIVITY_INFO fournit des informations sur les types de connectivité hétérogène Oracle pris en charge et affiche un exemple de code PL/SQL pour chaque type pris en charge.

Exemple :

SELECT * FROM HETEROGENEOUS_CONNECTIVITY_INFO WHERE DATABASE_TYPE = 'hive';

Vue HETEROGENEOUS_CONNECTIVITY_INFO

La vue HETEROGENEOUS_CONNECTIVITY_INFO répertorie les informations de connectivité et des exemples de connexion à PL/SQL à l'aide de liens de base de données et de connectivité hétérogène gérée par Oracle.

Colonne Type de données Description
DATABASE_TYPE VARCHAR2(32)

Valeur de type de base de données utilisée avec le paramètre gateway_params.

REQUIRED_PORT NUMBER

Valeurs de port prises en charge pour le type de base de données.

DESCRIPTION CLOB

Spécifie une description pour DATABASE_TYPE.

OPTIONAL_PARAMETERS VARCHAR2(1024)

Spécifie les paramètres facultatifs valides pour DATABASE_TYPE.

SAMPLE_USAGE CLOB

Affiche un exemple d'utilisation PL/SQL pour DATABASE_TYPE.