Créer des 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'une base de données autonome basée sur l'IA pour la connectivité hétérogène gérée par Oracle facilite la création de liens de base de données vers des bases de données non Oracle.

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

Note

Avec une connectivité hétérogène gérée par Oracle, la prise en charge concerne les connexions d'interrogation seulement 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éalable à l'utilisation d'une connectivité hétérogène gérée par Oracle avec Autonomous AI Database :

  • Lorsque la base de données cible se trouve sur un point d'extrémité public, la base de données doit être configurée pour autoriser les connexions SSL/TLS entrantes avec des certificats signés par une autorité de certification.

    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 points d'extrémité privés (par exemple, vous pouvez vous connecter à Oracle MySQL Database Service lorsque le service se trouve sur un point d'extrémité privé). Lorsque vous connectez à une base de données non oracle avec une connectivité hétérogène gérée par Oracle sur un point d'extrémité privé, la connexion utilise le protocole TCP et il n'est pas nécessaire de configurer SSL/TLS sur la base de données cible.

    Pour plus d'informations, voir Créer des liens de base de données vers Oracle MySQL sur un point d'extrémité privé avec connectivité hétérogène gérée par Oracle.

Pour créer des liens de base de données vers une base de données non Oracle à l'aide d'une connectivité hétérogène gérée par Oracle, procédez de la façon suivante :

  1. Dans la base de données d'intelligence artificielle autonome, créez des données d'identification pour accéder à la base de données cible. Les données d'identification username et password que vous spécifiez avec DBMS_CLOUD.CREATE_CREDENTIAL sont celles de la base de données cible utilisée dans le lien de base de données.

    Exemple :

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

    Cette opération stocke les données d'identification dans la base de données dans un format chiffré. Vous pouvez utiliser n'importe quel nom pour le nom des données d'identification. La fourniture du paramètre credential_name est requise.

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

    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, voir ProcédureCREATE_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 :

    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 non Oracle.

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

    Valeur db_type Type de base de données

    awsredshift

    Amazon Redshift

    azure

    Microsoft SQL Server

    SQL Azure

    Azure Synapse Analytics

    cassandra

    Apache Cassandra

    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

    servicenow ServiceNow
    sharepoint Microsoft SharePoint

    snowflake

    Snowflake

    youtube

    YouTube

    La base de données autonome d'IA configure et gère automatiquement la connexion sécurisée à une base de données cible et vos connexions sont chiffré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 racine et intermédiaire approuvés courants. Par conséquent, NULL doit être indiqué comme valeur 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 une connectivité hétérogène gérée par Oracle, le port de connexion est restreint et doit avoir SSL/TLS activé. Vous spécifiez le port de la base de données cible avec le paramètre port.

    Voir Types et ports de base de données à connectivité hétérogène gérés par Oracle pour la liste des types de base de données non Oracle pris en charge.

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

    Lorsque vous spécifiez 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, il existe deux paramètres facultatifs, auth_method et domain pour prendre en charge l'authentification NTLM/AD.

    Lorsque NTLMv2 est configuré, réglez auth_method=10 et réglez domain à la valeur du 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 Oracle sur place.

    Pour plus d'informations, voir 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 données d'identification doivent être de type OAuth à l'aide du paramètre params avec les valeurs gcp_oauth2 spécifiées (client_id, client_secret et refresh_token). Pour plus d'informations, voir ProcédureCREATE_CREDENTIAL.

    google_bigquery

    Lorsque db_type est google_bigquery, le paramètre project est valide. Ce paramètre spécifie le nom du projet sur google_bigquery et est obligatoire.

    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 données d'identification doivent être de type OAuth à l'aide du paramètre params avec les valeurs gcp_oauth2 spécifiées (client_id, client_secret et refresh_token). Pour plus d'informations, voir ProcédureCREATE_CREDENTIAL.

    google_drive

    Pour db_type google_drive, les données 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 spécifié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 mappe la réponse JSON au modèle relationnel. Le fichier de modèle spécifie les points d'extrémité, le mappage de table et le code de réponse HTTP pour le traitement de la réponse JSON. Pour plus d'informations, voir Syntaxe du fichier 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 le paramètre gateway_params db_type avec la valeur 'google_drive' et les paramètres directory_name et file_name, ainsi que les données d'identification de type OAuth :

    Le paramètre directory_name spécifie 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';

    Obtenez et téléchargez le fichier REST automatique dans le répertoire spécifié. Exemple :

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

    Réglez la valeur file_name au 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 hive, le paramètre http_path est valide. Ce paramètre spécifie 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, voir Réinitialiser le 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 :

    • Formulaire xxxx.develop.lightning.force.com d'URL
    • Formulaire xxxxmy.salesforce.com d'URL affiché sous l'onglet Voir le profil.

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

    servicenow

    Pour vous connecter à ServiceNow 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 de configuration REST) qui mappe la réponse JSON au modèle relationnel. Le fichier de modèle spécifie les points d'extrémité, le mappage de table et le code de réponse HTTP pour le traitement de la réponse JSON. Pour plus d'informations, voir Syntaxe du fichier de modèle et Exemple de fichier de 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 fournir les paramètres directory_name et file_name ainsi que les données d'identification de type nom d'utilisateur/mot de passe.

    • Authentification OAuth 2.0 : Vous devez fournir au paramètre gateway_params db_type la valeur 'servicenow' et les paramètres directory_name, file_name et token_uri, ainsi que les données d'identification de type OAuth.

      Pour l'authentification OAuth 2.0 avec db_type servicenow, les données d'identification doivent être de type OAuth à l'aide du paramètre params avec les valeurs gcp_oauth2 spécifiées (client_id, client_secret et refresh_token). Pour plus d'informations, voir ProcédureCREATE_CREDENTIAL.

    Le paramètre directory_name spécifie 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 spécifié. Exemple :

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

    Réglez la valeur file_name au 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. Voir Vue HETEROGENEOUS_CONNECTIVITY_INFO pour des exemples.

    sharepoint

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

    Pour db_type sharepoint, les données 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 spécifiées (client_id, client_secret et refresh_token). Pour plus d'informations, voir ProcédureCREATE_CREDENTIAL. Générer la valeur de refresh_token pour tenant_id.sharepoint.com/.default offline_access. Pour plus d'informations, voir Déterminer la portée et Authentification OAuth 2.0.

    Définissez des valeurs pour 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 comme 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 trouver votre identificateur de compte Snowflake, voir Formats d'identificateur de compte par plate-forme et région en nuage.

    Par exemple : pour le compte Snowflake :

    https://example-marketing_test_account.snowflakecomputing.com

    Réglez la valeur hostname à "example-marketing_test_account".

    Lorsque db_type est SNOWFLAKE, les paramètres facultatifs : role, schema et lakehouse sont valides. Ces valeurs spécifient un schéma, un rôle ou une valeur d'entrepôt avec lac de données différente de celle par défaut. Exemple :

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

    Pour vous connecter à YouTube et obtenir des données, vous devez fournir les paramètres directory_name et file_name. Ces paramètres spécifient un fichier de modèle (fichier de configuration REST) qui mappe la réponse JSON au modèle relationnel. Le fichier de modèle spécifie les points d'extrémité, le mappage de table et le code de réponse HTTP pour le traitement de la réponse JSON. Pour plus d'informations, voir Syntaxe du fichier de modèle et Exemple de fichier de modèle.

    Pour db_type youtube, les données d'identification doivent être de type OAuth à l'aide du paramètre params avec les valeurs gcp_oauth2 spécifiées (client_id, client_secret et refresh_token). Pour plus d'informations, voir ProcédureCREATE_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 AI Database :

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

      exec DBMS_CLOUD.get_object('youtube_dir_cred',
           'https://objectstorage.<...>/youtube.rest','YOUTUBE_DIR');
    3. Réglez la valeur file_name au 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. Voir Vue HETEROGENEOUS_CONNECTIVITY_INFO pour des exemples.

    Pour plus d'informations, voir ProcédureCREATE_DATABASE_LINK.

  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 spécifiez lorsque vous utilisez SELECT avec Google BigQuery doit être entre guillemets. Exemple :

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

Pour les données d'identification que vous créez à l'étape 1, les données d'identification de la base de données cible, si le mot de passe de l'utilisateur cible change, vous pouvez mettre à jour les données d'identification qui contiennent les données d'identification de l'utilisateur cible comme suit :

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

mot de passe est le nouveau mot de passe.

Après cette opération, les liens de base de données existants qui utilisent ces données d'identification continuent de fonctionner sans avoir à supprimer et à recréer les liens de base de données.

Pour plus d'informations, voir :

Créer des liens de base de données vers Oracle MySQL sur un point d'extrémité privé avec connectivité hétérogène gérée par Oracle

La prise en charge de la base de données autonome d'IA pour la connectivité hétérogène gérée par Oracle facilite la création de liens de base de données vers Oracle MySQL Database Service sur un point d'extrémité privé. Lorsque vous utilisez des liens de base de données avec une connectivité hétérogène gérée par Oracle, Autonomous AI Database configure et configure la connexion à Oracle MySQL Database Service.

Voici les préalables à l'utilisation d'une connectivité hétérogène gérée par Oracle avec Oracle MySQL Database Service sur un point d'extrémité privé :

  • Créez un nom DNS à l'aide d'une zone DNS privée pointant vers l'adresse IP privée de votre service Oracle MySQL Database Service dans votre VCN. Voir DNS privé.
  • Créez une base de données autonome avec un point d'extrémité privé dans 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 Oracle MySQL Database Service sur un point d'extrémité privé à l'aide d'une connectivité hétérogène gérée par Oracle, procédez de la façon suivante :

  1. Dans Autonomous AI Database, créez des données d'identification pour accéder au service Oracle MySQL Database Service. username et password que vous spécifiez avec DBMS_CLOUD.CREATE_CREDENTIAL sont les données d'identification pour le service Oracle MySQL Database Service utilisé dans le lien de base de données.
    Note

    La fourniture du paramètre credential_name est requise.

    Exemple :

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

    Cette opération stocke les données d'identification dans la base de données dans un format chiffré. Vous pouvez utiliser n'importe quel nom pour le nom des données d'identification.

  2. Créez le lien de base de données vers 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 :

    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.

    Exemple :

    SELECT count(*) FROM sales@MYSQL_LINK
Note

Pour les données d'identification que vous créez à l'étape 1, les données d'identification de la base de données cible, si le mot de passe de l'utilisateur cible change, vous pouvez mettre à jour les données d'identification qui contiennent les données d'identification de l'utilisateur cible comme suit :

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

mot de passe est le nouveau mot de passe.

Après cette opération, les liens de base de données existants qui utilisent ces données d'identification continuent de fonctionner sans avoir à supprimer et à recréer les liens de base de données.

Pour plus d'informations, voir :

Types et ports de base de données à connectivité hétérogène gérés par Oracle

Affiche les bases de données non Oracle auxquelles vous pouvez vous connecter à partir d'une base de données d'IA autonome avec une 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 permettant de voir les versions de base de données prises en charge pour chaque type de base de données.

Note

Oracle utilise des connecteurs Progress DataDirect. La colonne Database Support fournit des liens vers le site Web 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 Bases de données prises en charge

Amazon Redshift

awsredshift

5 439

Versions prises en charge par Amazon Redshift

SQL Azure

Microsoft SQL Server

Azure Synapse Analytics

azure

1 433

Versions prises en charge par Azure SQL

Versions prises en charge par Azure Synapse Analytics

Apache Cassandra cassandra

9 042

Cassandra prend en charge les versions

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 par 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 supérieure

IBM Db2 11.5.5 ou moins

db2

25 000

50 000

Versions prises en charge par IBM Db2

Microsoft SharePoint

sharepoint

443

Versions prises en charge par 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

salesforce

19 937

Versions prises en charge par Salesforce

ServiceNow

servicenow

443

ServiceNow Versions prises en charge

Snowflake

snowflake

443

Versions prises en charge par Snowflake

YouTube

youtube

443 Versions prises en charge par YouTube

Accéder aux informations et aux échantillons de connectivité hétérogènes

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

La vue HETEROGENEOUS_CONNECTIVITY_INFO fournit des informations sur les types de connectivité Oracle hétérogène 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 liste des informations de connectivité et des exemples de connexion à PL/SQL à l'aide de liens de base de données et de la 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.