Création de liens de base de données à partir d'une base de données Autonomous AI vers une base de données Oracle Database 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 vers une base de données Oracle Database cible qui se trouve sur une adresse privée.
Remarque : les liens de base de données d'une base de données Oracle vers une base de données cible située sur une adresse privée ne sont pris en charge que dans les régions commerciales et les régions du gouvernement américain. Cette fonction est activée par défaut dans toutes les régions commerciales. Cette fonctionnalité est activée par défaut dans les régions du gouvernement des Etats-Unis pour les bases de données nouvellement provisionnées. Pour les bases de données US Government existantes sur une adresse privée, si vous voulez créer des liens de base de données à partir d'une base de données Autonomous AI vers une cible dans une région US Government, vous pouvez déposer une demande de service sur le support technique Oracle Cloud et demander d'activer l'adresse privée dans la fonctionnalité de liaison de base de données des régions gouvernementales. Les régions du gouvernement des États-Unis sont les suivantes :
Selon le type et la configuration de la base de données Oracle cible :
-
Autre base de données Oracle Database, telle qu'une base de données sur site ou Database Cloud Service, sur une adresse privée configurée pour SSL (TCPS) : dans ce cas, vous pouvez créer le lien de base de données avec un portefeuille et le lien de base de données communique avec TCPS. Pour plus de détails, reportez-vous à Création de liens de base de données à partir d'une base de données Autonomous AI vers des bases de données Oracle sur une adresse privée avec un portefeuille (mTLS).
-
Oracle Database, telle qu'une base de données sur site ou Database Cloud Service, sur une adresse privée configurée pour TCP : dans ce cas, vous créez le lien de base de données sans portefeuille et le lien de base de données communique avec TCP. Pour plus de détails, reportez-vous à Création de liens de base de données vers des bases de données Oracle sur une adresse privée sans portefeuille.
Prérequis pour les liens de base de données d'une base de données Autonomous AI vers des bases de données Oracle sur une adresse privée
Répertorie les prérequis pour créer des liens de base de données à partir d'une base de données Autonomous AI vers une base de données Oracle cible située sur une adresse privée.
Pour créer un lien de base de données vers une base de données Oracle cible sur une adresse privée, procédez comme suit :
-
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 couplés.
-
La base de données cible est une base de données sur site connectée au Oracle Cloud Infrastructure VCN de la base de données source à l'aide de FastConnect ou du VPN.
-
-
Deux options permettent d'indiquer la base de données cible, à savoir le paramètre
hostnameou le paramètrerac_hostnames:-
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). -
Lorsque la cible est une base de données Oracle RAC, utilisez le paramètre
rac_hostnamespour indiquer des noms d'hôte avecDBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. Vous pouvez ainsi tirer parti des fonctionnalités de haute disponibilité d'Oracle RAC. L'utilisation d'une adresse IP, d'une IP SCAN ou d'un nom d'hôte SCAN dans la valeurrac_hostnamesn'est pas prise en charge.Lorsque vous indiquez une liste de noms d'hôte dans le paramètre
rac_hostnames,CREATE_DATABASE_LINKutilise tous les noms d'hôte indiqués comme adresses dans la chaîne de connexion. Si l'un des hôtes indiqués n'est pas disponible sur la base de données Oracle RAC cible, Autonomous Database tente automatiquement de se connecter à l'aide d'un autre nom d'hôte de la liste.
-
-
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.
-
Création de liens de base de données vers des bases de données Oracle sur une adresse privée sans portefeuille
Utilisez DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK pour créer des liens de base de données à partir d'une base de données Autonomous AI vers une base de données Oracle cible qui se trouve sur une adresse privée et se connecter sans portefeuille (TCP).
Remarque : cette option concerne les bases de données Oracle cible qui se trouvent sur une adresse privée et qui n'ont pas de SSL/TCPS configuré.
Effectuez les étapes prérequises, le cas échéant. Pour plus de détails, reportez-vous aux prérequis pour les liens de base de données d'une base de données Autonomous AI vers des bases de données Oracle sur une adresse privée.
Pour créer un lien de base de données vers une base de données cible sur une adresse privée à l'aide d'une connexion TCP sécurisée sans portefeuille, 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. Les informations d'identification
usernameetpasswordque vous indiquez avecDBMS_CLOUD.CREATE_CREDENTIALsont celles 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 le VCN).Exemple :
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'PRIVATE_ENDPOINT_CRED', username => 'NICK', password => '*password*' ); END; /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 base de données cible à l'aide de
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.Exemple :
BEGIN DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK( db_link_name => 'PRIVATE_ENDPOINT_LINK', hostname => 'exampleHostname', port => '1522', service_name => '*exampleServiceName*', ssl_server_cert_dn => NULL, credential_name => 'PRIVATE_ENDPOINT_CRED', directory_name => NULL, private_target => TRUE); END; /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).Lorsque la cible est une base de données Oracle RAC, utilisez le paramètre
rac_hostnamespour indiquer des noms d'hôte avecDBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. Vous pouvez ainsi tirer parti des fonctionnalités de haute disponibilité d'Oracle RAC. L'utilisation d'une adresse IP, d'une IP SCAN ou d'un nom d'hôte SCAN dans la valeurrac_hostnamesn'est pas prise en charge.Par exemple, avec une base de données Oracle RAC cible, utilisez le paramètre
rac_hostnames:BEGIN DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK( db_link_name => 'PRIVATE_ENDPOINT_LINK', rac_hostnames => '["sales1-svr1.*example*.adb.us-ashburn-1.oraclecloud.com", "sales1-svr2.*example*.adb.us-ashburn-1.oraclecloud.com", "sales1-svr3.*example*.adb.us-ashburn-1.oraclecloud.com"]', port => '1522', service_name => '*exampleServiceName*', ssl_server_cert_dn => NULL, credential_name => 'PRIVATE_ENDPOINT_CRED', directory_name => NULL, private_target => TRUE); END; /DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKne prend pas en charge la valeurlocalhostpourhostnameou dans le paramètrerac_hostnames.Les utilisateurs autres qu'ADMIN ont besoin de privilèges pour exécuter
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.Comme indiqué dans l'exemple, pour créer un lien de base de données avec
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKvers une base de données cible sur une adresse privée à l'aide d'une connexion TCP sécurisée sans portefeuille, les éléments suivants sont requis :-
Le paramètre
directory_namedoit êtreNULL. -
Le paramètre
ssl_server_cert_dndoit êtreNULL. -
Le paramètre
private_targetdoit êtreTRUE.
-
-
Utilisez le lien de base de données que vous avez créé pour accéder aux données de la base cible.
Exemple :
SELECT * FROM employees@PRIVATE_ENDPOINT_LINK;
Pour les informations d'identification que vous créez à l'étape 1, les informations d'identification Oracle Database, 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ù password 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 CREATE_DATABASE_LINK.
Création de liens de base de données d'une base de données Autonomous AI vers des bases de données Oracle sur une adresse privée avec un portefeuille (mTLS)
Vous pouvez créer des liens de base de données à partir d'une base de données Autonomous AI vers une base de données Oracle cible qui se trouve sur une adresse privée.
Remarque : cette option concerne les bases de données Oracle cible pour lesquelles SSL/TCPS est configuré et qui se trouvent sur une adresse privée.
Si le protocole SSL/TCPS n'est pas configuré pour la base de données Oracle cible, vous disposez de deux options :
-
Vous pouvez configurer la base de données Oracle cible pour qu'elle utilise le protocole TCP/IP avec l'authentification SSL (TCPS). Pour plus d'informations sur la configuration de SSL/TCPS, reportez-vous à la section Configuring Transport Layer Security Authentication in Oracle Database 19c Security Guide ou Oracle Database 26ai Security Guide.
-
Vous pouvez vous connecter à la base de données Oracle cible avec TCP. Pour plus d'informations, reportez-vous à Création de liens de base de données vers des bases de données Oracle sur une adresse privée sans portefeuille.
Effectuez les étapes prérequises, le cas échéant. Pour plus de détails, reportez-vous aux prérequis pour les liens de base de données d'une base de données Autonomous AI vers des bases de données Oracle sur une adresse privée.
Pour créer un lien de base de données vers une base de données Oracle cible sur une adresse privée à l'aide de l'authentification TCP/IP avec SSL (TCPS), procédez comme suit :
-
Copiez le portefeuille de base de données cible,
cwallet.sso, contenant les certificats de la base de données cible vers la banque d'objets.Remarque : le fichier de portefeuille, avec l'ID utilisateur et le mot de passe de la base de données, permet d'accéder aux données de la base de données Oracle cible. Stockez les fichiers de portefeuille dans un emplacement sécurisé. Partagez les fichiers de portefeuille uniquement avec les utilisateurs autorisés.
-
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 *wallet_dir* AS '*directory_path_of_your_choice*';Pour plus d'informations sur la création de répertoires, reportez-vous à Création d'un répertoire dans la base de données Autonomous AI.
-
Utilisez
DBMS_CLOUD.GET_OBJECTpour télécharger le portefeuille de base de données cible vers le répertoire que vous avez créé à l'étape précédente, 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 => '*WALLET_DIR*'); END; /Dans cet exemple,
*namespace-string*est 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 base de données cible. -
Sur la base de données Autonomous AI, créez des informations d'identification pour accéder à la base de données cible. Les informations d'identification
usernameetpasswordque vous indiquez avecDBMS_CLOUD.CREATE_CREDENTIALsont celles 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 le VCN).Remarque : vous devez indiquer le paramètre
credential_name.Exemple :
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'DB_LINK_CRED', username => 'NICK', password => '*password*'); END; /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 base de données cible à l'aide de
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.Exemple :
BEGIN DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK( db_link_name => 'PEDBLINK1', hostname => 'example1.adb.ap-osaka-1.oraclecloud.com', port => '1522', service_name => '*example_high.adb.oraclecloud.com*', ssl_server_cert_dn => '*ssl_server_cert_dn*', credential_name => 'DB_LINK_CRED', directory_name => '*WALLET_DIR*', private_target => TRUE); END; /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).Lorsque la cible est une base de données Oracle RAC, utilisez le paramètre
rac_hostnamespour indiquer des noms d'hôte avecDBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. Vous pouvez ainsi tirer parti des fonctionnalités de haute disponibilité d'Oracle RAC. L'utilisation d'une adresse IP, d'une IP SCAN ou d'un nom d'hôte SCAN dans la valeurrac_hostnamesn'est pas prise en charge.Par exemple, avec une base de données Oracle RAC cible, utilisez le paramètre
rac_hostnames:BEGIN DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK( db_link_name => 'PEDBLINK1', rac_hostnames => '["sales1-svr1.*example*.adb.us-ashburn-1.oraclecloud.com", "sales1-svr2.*example*.adb.us-ashburn-1.oraclecloud.com", "sales1-svr3.*example*.adb.us-ashburn-1.oraclecloud.com"]', port => '1522', service_name => '*example_high.adb.oraclecloud.com*', ssl_server_cert_dn => '*ssl_server_cert_dn*', credential_name => 'DB_LINK_CRED', directory_name => '*WALLET_DIR*', private_target => TRUE); END; /DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKne prend pas en charge la valeurlocalhostpourhostnameou dans le paramètrerac_hostnames.Les utilisateurs autres qu'ADMIN ont besoin de privilèges pour exécuter
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. -
Utilisez le lien de base de données que vous avez créé pour accéder aux données de la base cible.
Exemple :
```sql SELECT * FROM employees@PEDBLINK1 ;
Pour les informations d'identification que vous créez à l'étape 5, les informations d'identification Oracle Database, 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ù password 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 CREATE_DATABASE_LINK.
Remarques sur les liens de base de données avec une cible Oracle Database
Fournit des notes pour la création de liens de base de données vers une base de données Oracle cible (lorsque la cible n'est pas une base de données Autonomous AI)
Remarques concernant les liens de base de données vers d'autres bases Oracle :
-
Un seul fichier de portefeuille est valide par répertoire pour une utilisation avec des liens de base de données. Vous ne pouvez télécharger qu'une seule valeur
cwallet.ssoà la fois vers le répertoire de votre choix pour les fichiers de portefeuille (par exemple, DBLINK_WALLET_DIR). Cela signifie qu'avec une valeurcwallet.ssodans DBLINK_WALLET_DIR, vous pouvez uniquement créer des liens de base de données vers les bases de données pour lesquelles le portefeuille dans ce répertoire est valide. Pour utiliser plusieurs fichierscwallet.ssoavec des liens de base de données, vous devez créer des répertoires supplémentaires et placer chaque fichiercwallet.ssodans un répertoire différent. Lorsque vous créez des liens de base de données avecDBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK, indiquez le répertoire qui contient le portefeuille avec le paramètredirectory_name.Pour plus d'informations sur la création de répertoires, reportez-vous à Création d'un répertoire dans la base de données Autonomous AI.
-
Les versions de base de données Oracle cible prises en charge pour les liens de base de données vers une autre instance Oracle Database sont : 19c, 12.2.0 et 12.1.0.
Remarque : pour obtenir des informations complètes sur les versions prises en charge, reportez-vous à la section Client Server Interoperability Support Matrix for Different Oracle Versions (ID document 207303.1)
-
Autonomous AI Database définit le paramètre
SEC_CASE_SENSITIVE_LOGONsurtrueet cette valeur ne peut pas être modifiée. Si votre base de données cible n'est pas une base de données Autonomous AI, vous devez définir " SEC_CASE_SENSITIVE_LOGONparameter totrueon the target database. IfSEC_CASE_SENSITIVE_LOGONis set tofalseon the target database, then errorORA-28040 : aucun protocole d'authentification correspondant" n'est généré. -
Pour répertorier les liens de base de données, utilisez la vue
ALL_DB_LINKS. Pour plus d'informations, reportez-vous à ALL_DB_LINKS dans le manuel Oracle Database 19c Database Reference ou Oracle Database 26ai Database Reference. -
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 de la base Oracle cible. Stockez les fichiers de portefeuille dans un emplacement sécurisé. Partagez les fichiers de portefeuille uniquement avec les utilisateurs autorisés.
-
Lorsque l'instance de base de données Autonomous AI se trouve sur une adresse privée, il existe deux options pour indiquer la base de données cible : utilisez le paramètre
hostnameou le paramètrerac_hostnames:-
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). -
Lorsque la cible est une base de données Oracle RAC, utilisez le paramètre
rac_hostnamespour indiquer des noms d'hôte avecDBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. Vous pouvez ainsi tirer parti des fonctionnalités de haute disponibilité d'Oracle RAC. L'utilisation d'une adresse IP, d'une IP SCAN ou d'un nom d'hôte SCAN dans la valeurrac_hostnamesn'est pas prise en charge.Lorsque vous indiquez une liste de noms d'hôte dans le paramètre
rac_hostnames,CREATE_DATABASE_LINKutilise tous les noms d'hôte indiqués comme adresses dans la chaîne de connexion. Si l'un des hôtes indiqués n'est pas disponible sur la base de données Oracle RAC cible, Autonomous Database tente automatiquement de se connecter à l'aide d'un autre nom d'hôte de la liste. -
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKne prend pas en charge la valeurlocalhostpourhostnameou dans le paramètrerac_hostnames.
-