Création de liens de base de données avec une connectivité hétérogène gérée par le client aux bases de données autres qu'Oracle sur une adresse privée
Vous pouvez créer des liens de base de données à partir d'une base de données Autonomous AI sur une infrastructure Exadata dédiée vers une instance Oracle Database Gateway pour accéder aux bases de données non Oracle qui se trouvent sur une adresse privée.
Une passerelle Oracle Database Gateway est une passerelle conçue pour accéder à un système non Oracle spécifique. A l'aide d'une instance Oracle Database Gateway, vous pouvez accéder aux données n'importe où dans un système de base de données distribué sans connaître ni l'emplacement ni le mode de stockage des données. L'utilisation de liens de base de données sur Autonomous AI Database avec Oracle Database Gateway prend en charge des environnements hétérogènes et élimine la nécessité de personnaliser vos applications pour accéder aux données des systèmes non Oracle.
Remarque : la création de liens de base de données avec une connectivité hétérogène gérée par le client à des bases de données non Oracle sur une adresse privée est prise en charge uniquement avec les versions 19.25 et supérieures pour 19c et 23.6 et supérieures pour 23ai.
Prérequis
Pour utiliser des liens de base de données à partir d'une instance de base de données Autonomous AI sur une adresse publique, procédez comme suit :
-
Configurez Oracle Database Gateway pour accéder à une base de données non Oracle. Pour plus de détails, reportez-vous à Oracle Database Gateways dans le Guide de l'utilisateur Oracle Database 19c Database Heterogeneous Connectivity ou dans le Guide de l'utilisateur Oracle Database 26ai Database Heterogeneous Connectivity.
Selon la base de données à laquelle vous souhaitez vous connecter, vous pouvez vous reporter au guide d'installation et de configuration correspondant et au guide de l'utilisateur de la passerelle.
Par exemple, pour Oracle Database Gateway for SQL Server, reportez-vous aux sections suivantes :
-
Installing and Configuring Oracle Database Gateway for SQL Server dans le manuel Oracle Database 19c Installation and Configuration Guide for Microsoft Windows ou Oracle Database 26ai Installation and Configuration Guide for Microsoft Windows
-
Introduction à Oracle Database Gateway for SQL Server dans le Guide de l'utilisateur Oracle Database 19c Gateway for SQL Server. ou Guide de l'utilisateur Oracle Database 26ai Gateway for SQL Server.
-
Configure Oracle Net for the Gateway dans le Guide d'installation et de configuration d'Oracle Database 19c pour Microsoft Windows ou Guide d'installation et de configuration d'Oracle Database 26ai pour Microsoft Windows.
-
-
Configurez Oracle Net Listener pour gérer les demandes entrantes sur Oracle Database Gateway.
-
Créez un portefeuille auto-signé sur Oracle Database Gateway.
En outre :
-
La base de données cible doit être accessible à partir du VCN Oracle Cloud Infrastructure de la base de données source. Par exemple, vous pouvez vous connecter à la base de données cible lorsque :
-
La base de données cible se trouve sur une adresse privée.
-
La base de données source et la base de données cible se trouvent toutes deux dans le même VCN Oracle Cloud Infrastructure.
-
La base de données source et la base de données cible se trouvent dans différents réseaux cloud virtuels Oracle Cloud Infrastructure associés.
-
Pour une cible sur une adresse privée,
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKprend en charge la spécification d'un nom d'hôte unique avec le paramètrehostname. Sur une adresse privée, l'utilisation d'une adresse IP, d'une adresse IP SCAN ou d'un nom d'hôte SCAN n'est pas prise en charge (lorsque la cible se trouve sur une adresse publique,CREATE_DATABASE_LINKprend en charge l'utilisation d'une adresse IP, d'une adresse IP SCAN ou d'un nom d'hôte SCAN).
-
-
Les règles entrantes et sortantes suivantes doivent être définies pour l'adresse privée :
-
Définissez une règle sortante dans la liste de sécurité de sous-réseau ou le groupe de sécurité réseau de la base de données source de sorte que le trafic sur TCP soit autorisé vers l'adresse IP et le numéro de port de la base de données cible.
-
Définissez une règle entrante dans la liste de sécurité de sous-réseau ou le groupe de sécurité réseau de la base de données cible de sorte que le trafic sur TCP soit autorisé à partir de l'adresse IP de la base de données source vers le port de destination.
-
Connectivité hétérogène gérée par le client aux bases de données non Oracle sur une adresse privée (sans portefeuille)
Vous pouvez créer des liens de base de données à partir d'une base de données Autonomous AI vers une instance Oracle Database Gateway pour accéder aux bases de données non Oracle qui se trouvent sur une adresse privée avec un portefeuille (TCPS) ou sans portefeuille (TLS). Cette section décrit la création d'un lien de base de données sans portefeuille.
Pour créer des liens de base de données à partir d'une instance de base de données Autonomous AI sur une adresse privée vers une passerelle cible, à l'aide de liens de base de données et d'une connexion TLS, procédez comme suit :
-
Sur la base de données Autonomous AI, créez des informations d'identification pour accéder à la base de données cible. Le nom utilisateur et le mot de passe que vous indiquez avec
DBMS_CLOUD.CREATE_CREDENTIALsont les informations d'identification de la base de données cible utilisée dans le lien de base de données (où la base de données cible est accessible via Oracle Database Gateway).Exemple :
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'DB_LINK_CRED', username => 'NICK', password => 'password' ); END;/Le paramètre
credential_nameest obligatoire.Les caractères du paramètre
usernamedoivent être en majuscules.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.
-
Créez le lien de base de données vers la passerelle cible à l'aide de
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.Exemple :
BEGIN DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK( db_link_name => 'SALESLINK', hostname => 'example.com', port => '1522', service_name => 'example_service_name', ssl_server_cert_dn => 'ssl_server_cert_dn', credential_name => 'DB_LINK_CRED', directory_name => NULL, gateway_link => TRUE, private_target => TRUE, gateway_params => NULL ); END;/Le paramètre
ssl_server_cert_dnest facultatif si la connexion est créée en tant que lien de base de données basé sur TCP (sans portefeuille).Lorsque
directory_nameest défini surNULL, la connexion est créée en tant que lien de base de données basé sur TCP (sans portefeuille).Le paramètre
private_targetdoit être défini surTRUElorsque la base de données non-Oracle Database cible se trouve sur une adresse privée (c'est-à-dire que le lien de base de données accède à un nom d'hôte qui doit être résolu dans un serveur DNS VCN). Lorsqueprivate_targetest défini surTRUE, le paramètrehostnamedoit être un nom d'hôte unique (sur une adresse privée, l'utilisation d'une adresse IP, d'une adresse IP SCAN ou d'un nom d'hôte SCAN n'est pas prise en charge).Lorsque
gateway_linkestTRUEetgateway_paramsNULL, cela indique que le lien de base de données est vers une passerelle Oracle gérée par le client.Les utilisateurs autres qu'ADMIN ont besoin de privilèges pour exécuter
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.Pour plus d'informations, reportez-vous à Procédure CREATE_DATABASE_LINK.
-
Utilisez le lien de base de données que vous avez créé pour accéder aux données sur la passerelle cible.
Exemple :
SELECT * FROM employees@SALESLINK;
Pour les informations d'identification que vous créez à l'étape 1, les informations d'identification Oracle Database Gateway, si le mot de passe de l'utilisateur cible change, vous pouvez mettre à jour les informations d'identification qui contiennent les informations d'identification de l'utilisateur cible comme suit :
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL (
credential_name =>'DB_LINK_CRED',
attribute =>'PASSWORD',
value=>'password'
);
END;
/
Où mot de passe correspond au 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 avoir à supprimer ni à recréer les liens de base de données.
Pour plus d'informations, reportez-vous à Procédure UPDATE_CREDENTIAL.
Connectivité hétérogène gérée par l'utilisateur aux bases de données autres que Oracle sur une adresse privée (avec un portefeuille)
Vous pouvez créer des liens de base de données à partir d'une base de données Autonomous AI vers une instance Oracle Database Gateway pour accéder aux bases de données non Oracle qui se trouvent sur une adresse privée avec un portefeuille (TCPS) ou sans portefeuille (TLS). Cette section décrit la création d'un lien de base de données avec un portefeuille.
Pour créer des liens de base de données à partir d'une instance de base de données Autonomous AI sur une adresse privée vers une passerelle cible, en vous connectant à un portefeuille, procédez comme suit :
-
Copiez le portefeuille auto-signé de la passerelle cible, par exemple
cwallet.sso, contenant les certificats d'Oracle Database Gateway vers la banque d'objets.Le fichier de portefeuille, ainsi que l'ID utilisateur et le mot de passe de la base de données, permettent d'accéder aux données disponibles via la passerelle cible. Stockez les fichiers de portefeuille dans un emplacement sécurisé. Partagez les fichiers de portefeuille uniquement avec les utilisateurs autorisés.
-
Sur Autonomous AI Database, créez des informations d'identification pour accéder à la banque d'objets dans laquelle stocker le fichier
cwallet.sso.Pour plus d'informations sur les paramètres de nom utilisateur et de mot de passe des différents services de stockage d'objets, reportez-vous à Procédure CREATE_CREDENTIAL.
-
Créez un répertoire sur la base de données Autonomous AI pour le fichier de portefeuille
cwallet.sso.Exemple :
CREATE DIRECTORY dblink_wallet_dir AS 'directory_path_of_your_choice';Pour plus d'informations sur la création de répertoires, reportez-vous à Créer un répertoire dans la base de données Autonomous AI.
-
Utilisez
DBMS_CLOUD.GET_OBJECTpour télécharger le portefeuille auto-signé de la passerelle cible vers le répertoire créé à l'étape précédente,DBLINK_WALLET_DIR.Exemple :
BEGIN DBMS_CLOUD.GET_OBJECT( credential_name =>'DEF_CRED_NAME', object_uri =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/cwallet.sso', directory_name =>'DBLINK_WALLET_DIR' ); END; /Dans cet exemple,
namespace-stringest l'espace de noms Oracle Cloud Infrastructure Object Storage etbucketnameest le nom du bucket. Pour plus d'informations, reportez-vous à Présentation des espaces de noms Object Storage.Remarque : le fichier
credential_nameque vous utilisez dans cette étape correspond aux informations d'identification de la banque d'objets. A l'étape suivante, vous allez créer les informations d'identification permettant d'accéder à la passerelle cible. -
Sur la base de données Autonomous AI, créez des informations d'identification pour accéder à la base de données cible. Le nom utilisateur et le mot de passe que vous indiquez avec
DBMS_CLOUD.CREATE_CREDENTIALsont les informations d'identification de la base de données cible utilisée dans le lien de base de données (où la base de données cible est accessible via Oracle Database Gateway).Exemple :
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name =>'DB_LINK_CRED', username =>'NICK', password =>'password' ); END; /Le paramètre
credential_nameest obligatoire.Les caractères du paramètre
usernamedoivent être en majuscules.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.
-
Créez le lien de base de données vers la passerelle cible à l'aide de
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.Exemple :
BEGIN DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK( db_link_name =>'SALESLINK', hostname =>'example.com', port =>'1522', service_name =>'example_service_name', ssl_server_cert_dn =>'ssl_server_cert_dn', credential_name =>'DB_LINK_CRED', directory_name =>'DBLINK_WALLET_DIR', gateway_link =>TRUE, private_target =>TRUE, gateway_params =>NULL ); END; /Si
directory_namen'est pasNULL, un lien de base de données basé sur TCPS est créé.Le paramètre
private_targetdoit être défini surTRUElorsque la base de données non-Oracle Database cible se trouve sur une adresse privée (c'est-à-dire que le lien de base de données accède à un nom d'hôte qui doit être résolu dans un serveur DNS VCN). Lorsqueprivate_targetest défini surTRUE, le paramètrehostnamedoit être un nom d'hôte unique (sur une adresse privée, l'utilisation d'une adresse IP, d'une adresse IP SCAN ou d'un nom d'hôte SCAN n'est pas prise en charge).Lorsque
gateway_linkestTRUEetgateway_paramsNULL, cela indique que le lien de base de données est vers une passerelle Oracle gérée par le client.Les utilisateurs autres qu'ADMIN ont besoin de privilèges pour exécuter
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.Pour plus d'informations, reportez-vous à Procédure CREATE_DATABASE_LINK.
-
Utilisez le lien de base de données que vous avez créé pour accéder aux données sur la passerelle cible.
Exemple :
SELECT * FROM employees@SALESLINK;
Pour les informations d'identification que vous créez à l'étape 5, les informations d'identification Oracle Database Gateway, si le mot de passe de l'utilisateur cible change, vous pouvez mettre à jour les informations d'identification qui contiennent les informations d'identification de l'utilisateur cible comme suit :
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL (
credential_name =>'DB_LINK_CRED',
attribute =>'PASSWORD',
value=>'password'
);
END;
/
Où mot de passe correspond au 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 avoir à supprimer ni à recréer les liens de base de données.
Pour plus d'informations, reportez-vous à Procédure UPDATE_CREDENTIAL.