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 accessible au public 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 publique.
Pour utiliser des liens de base de données avec une base de données Autonomous AI, la base de données cible doit être configurée pour utiliser le protocole TCP/IP avec l'authentification SSL (TCPS). Les bases de données Autonomous AI utilisent le protocole TCP/IP avec l'authentification SSL (TCPS) par défaut. Vous n'avez donc pas besoin d'effectuer de configuration supplémentaire dans votre base de données cible pour créer un lien vers une autre base de données Autonomous AI. Les autres bases de données Oracle doivent être configurées pour utiliser le protocole TCP/IP avec l'authentification SSL (TCPS). Pour plus d'informations, reportez-vous à la section Configuring Secure Sockets Layer Authentication du Guide de sécurité Oracle Database 19c ou au Guide de sécurité Oracle Database 26ai.
Pour créer des liens de base de données vers une cible publique, la cible Oracle Database doit être accessible. Certaines bases de données peuvent limiter l'accès (par exemple, à l'aide de listes de contrôle d'accès). Veillez à activer la base de données cible pour autoriser l'accès à partir de la base de données source au fonctionnement du lien de base de données. Si vous limitez l'accès à l'aide de listes de contrôle d'accès, vous pouvez trouver l'adresse IP sortante de votre base de données Autonomous AI source et autoriser cette adresse IP à se connecter à votre base de données cible.
Pour plus d'informations, reportez-vous à Création d'un lien de base de données à partir de votre base de données Autonomous AI vers une instance Database Cloud Service.
Pour créer des liens de base de données vers une base de données Oracle cible avec un portefeuille (mTLS), 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.Pour le fichier de portefeuille, tenez compte des points suivants :
-
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 dans l'instance Oracle Database cible. Stockez les fichiers de portefeuille dans un emplacement sécurisé. Partagez les fichiers de portefeuille uniquement avec les utilisateurs autorisés.
-
Ne renommez pas le fichier de portefeuille. Le fichier de portefeuille dans Object Storage doit être nommé
cwallet.sso.
-
-
Créez des informations d'identification pour accéder à la banque d'objets dans laquelle stocker le fichier de portefeuille
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é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, 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-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 l'instance de 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 que vous utilisez pour créer le lien de base de données.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 => 'SALESLINK', hostname => 'adb.eu-frankfurt-1.oraclecloud.com', port => '1522', service_name => '*example*_medium.atpc.example.oraclecloud.com', ssl_server_cert_dn => 'CN=atpc.example.oraclecloud.com,OU=Oracle BMCS FRANKFURT,O=Oracle Corporation,L=Redwood City,ST=California,C=US', credential_name => 'DB_LINK_CRED', directory_name => '*DBLINK_WALLET_DIR*'); END; /Les utilisateurs autres qu'ADMIN ont besoin de privilèges pour exécuter
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.Si le fichier de portefeuille dans le répertoire indiqué avec
directory_namen'est pascwallet.sso, la procédure signale une erreur telle que :ORA-28759: failure to open file. -
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@SALESLINK;
Pour les informations d'identification que vous créez à l'étape 5, les informations d'identification de base de données cible, 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, voir :
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 la base de données cible n'est pas une base de données Autonomous AI, vous devez définir le paramètreSEC_CASE_SENSITIVE_LOGONsurtruesur la base de données cible. SiSEC_CASE_SENSITIVE_LOGONest défini surfalsesur la base de données cible, l'erreurORA-28040: No matching authentication protocolest générée. -
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.
-