Creare database link da un Autonomous AI Database a un Oracle Database con accesso pubblico con wallet (mTLS)
È possibile creare database link da un Autonomous AI Database a un database Oracle di destinazione che si trova su un endpoint pubblico.
Per utilizzare i database link con Autonomous AI Database, è necessario che il database di destinazione sia configurato in modo da utilizzare TCP/IP con autenticazione SSL (TCPS). I database AI autonomi utilizzano l'autenticazione TCP/IP con SSL (TCPS) per impostazione predefinita, pertanto non è necessario eseguire alcuna configurazione aggiuntiva nel database di destinazione per il collegamento a un altro Autonomous AI Database. Gli altri database Oracle devono essere configurati per l'uso di TCP/IP con autenticazione SSL (TCPS). Per ulteriori informazioni, vedere Configuring Secure Sockets Layer Authentication in Oracle Database 19c Security Guide o Oracle Database 26ai Security Guide.
Per creare database link a una destinazione pubblica, è necessario che l'Oracle Database di destinazione sia accessibile. Alcuni database possono limitare l'accesso (ad esempio, utilizzando le liste di controllo dell'accesso). Assicurarsi di abilitare il database di destinazione per consentire l'accesso dal database di origine affinché il database link funzioni. Se limiti l'accesso con le liste di controllo dell'accesso (ACL), puoi trovare l'indirizzo IP in uscita di Autonomous AI Database di origine e consentire a tale indirizzo IP di connettersi al database di destinazione.
Per ulteriori informazioni, vedere Come creare un database link da Autonomous AI Database a un'istanza di Database Cloud Service.
Per creare i database link a un database Oracle di destinazione con un wallet (mTLS):
-
Copiare il wallet del database di destinazione,
cwallet.sso, contenente i certificati per il database di destinazione nell'area di memorizzazione degli oggetti.Tenere presente quanto riportato di seguito per il file wallet.
-
Il file wallet, insieme all'ID utente e alla password del database, fornisce l'accesso ai dati nell'Oracle Database di destinazione. Memorizzare i file wallet in una posizione sicura. Condividere i file wallet solo con utenti autorizzati.
-
Non rinominare il file wallet. Il file wallet nello storage degli oggetti deve essere denominato
cwallet.sso.
-
-
Creare le credenziali per accedere all'area di memorizzazione degli oggetti in cui memorizzare il file wallet
cwallet.sso. Per informazioni sui parametri di nome utente e password per diversi servizi di storage degli oggetti, vedere Procedura CREDENTIAL. -
Creare una directory in Autonomous AI Database per il file wallet
cwallet.sso.Ad esempio:
CREATE DIRECTORY *dblink_wallet_dir* AS '*directory_path_of_your_choice*';Per informazioni sulla creazione di directory, vedere Crea directory in Autonomous AI Database.
-
Utilizzare
DBMS_CLOUD.GET_OBJECTper caricare il wallet del database di destinazione nella directory creata nel passo precedente, DBLINK_WALLET_DIR.Ad esempio:
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; /In questo esempio,
*namespace-string*è lo spazio di nomi dello storage degli oggetti Oracle Cloud Infrastructure ebucketnameè il nome del bucket. Per ulteriori informazioni, vedere Informazioni sugli spazi di nomi dello storage degli oggetti.Nota: il
credential_nameutilizzato in questo passo è costituito dalle credenziali per l'area di memorizzazione degli oggetti. Nel passo successivo si creano le credenziali per accedere al database di destinazione. -
Nell'istanza di Autonomous AI Database creare le credenziali per accedere al database di destinazione. Le credenziali
usernameepasswordspecificate conDBMS_CLOUD.CREATE_CREDENTIALsono le credenziali per il database di destinazione utilizzato per creare il database link.Nota: è necessario specificare il parametro
credential_name.Ad esempio:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'DB_LINK_CRED', username => 'NICK', password => '*password*'); END; /I caratteri del parametro
usernamedevono essere tutte lettere maiuscole.Questa operazione memorizza le credenziali nel database in un formato cifrato. È possibile utilizzare qualsiasi nome per il nome della credenziale.
-
Creare il database link al database di destinazione utilizzando
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.Ad esempio:
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; /Gli utenti diversi da ADMIN richiedono privilegi per eseguire
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.Se il file wallet nella directory specificata con
directory_namenon ècwallet.sso, la procedura segnala un errore, ad esempio:ORA-28759: failure to open file. -
Utilizzare il database link creato per accedere ai dati nel database di destinazione.
Ad esempio:
SELECT * FROM employees@SALESLINK;
Per le credenziali create nel Passo 5, le credenziali del database di destinazione, se la password dell'utente di destinazione viene modificata, è possibile aggiornare la credenziale che contiene le credenziali dell'utente di destinazione come indicato di seguito.
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL (
credential_name => 'DB_LINK_CRED',
attribute => 'PASSWORD',
value => '*password*' );
END;
/
Dove password corrisponde alla nuova password.
Dopo questa operazione, i database link esistenti che utilizzano questa credenziale continuano a funzionare senza dover eliminare e ricreare i database link.
Per ulteriori informazioni, vedere:
Database Link Notes con Oracle Database di destinazione
Fornisce note per la creazione di collegamenti al database a un database Oracle di destinazione (quando la destinazione non è un Autonomous AI Database)
Note per i collegamenti di database ad altri database Oracle:
-
È valido un solo file wallet per ogni directory da utilizzare con i database link. È possibile caricare un solo file
cwallet.ssoalla volta nella directory scelta per i file wallet, ad esempio DBLINK_WALLET_DIR. Ciò significa che con uncwallet.ssoin DBLINK_WALLET_DIR è possibile creare solo database link ai database per i quali il wallet in tale directory è valido. Per utilizzare più filecwallet.ssocon database link è necessario creare directory aggiuntive e inserire ogni filecwallet.ssoin una directory diversa. Quando si creano database link conDBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK, specificare la directory che contiene il wallet con il parametrodirectory_name.Per informazioni sulla creazione di directory, vedere Crea directory in Autonomous AI Database.
-
Le versioni di database Oracle di destinazione supportate per i database link a un altro Oracle Database sono: 19c, 12.2.0 e 12.1.0.
Nota: per informazioni complete sulle versioni supportate, vedere Matrice di supporto per l'interoperabilità dei server client per versioni Oracle diverse (ID documento 207303.1)
-
Autonomous AI Database imposta il parametro
SEC_CASE_SENSITIVE_LOGONsutruee questo valore non può essere modificato. Se il database di destinazione non è un Autonomous AI Database, è necessario impostare il parametroSEC_CASE_SENSITIVE_LOGONsutruenel database di destinazione. SeSEC_CASE_SENSITIVE_LOGONè impostato sufalsenel database di destinazione, viene generato l'erroreORA-28040: No matching authentication protocol. -
Per elencare i database link, utilizzare la vista
ALL_DB_LINKS. Per ulteriori informazioni, vedere ALL_DB_LINKS in Oracle Database 19c Database Reference o Oracle Database 26ai Database Reference. -
Il file wallet, insieme all'ID utente e alla password del database, fornisce l'accesso ai dati nel database Oracle di destinazione. Memorizzare i file wallet in una posizione sicura. Condividere i file wallet solo con utenti autorizzati.
-
Quando l'istanza di Autonomous AI Database si trova su un endpoint privato, sono disponibili due opzioni per specificare il database di destinazione: utilizzare il parametro
hostnameo il parametrorac_hostnames:-
Per una destinazione su un endpoint privato,
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKsupporta la specifica di un singolo nome host con il parametrohostname. In un endpoint privato, l'uso di un indirizzo IP, di un IP SCAN o di un nome host SCAN non è supportato (quando la destinazione si trova su un endpoint pubblico,CREATE_DATABASE_LINKsupporta l'uso di un indirizzo IP, di un IP SCAN o di un nome host SCAN). -
Quando la destinazione è un database Oracle RAC, utilizzare il parametro
rac_hostnamesper specificare uno o più nomi host conDBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. Ciò consente di sfruttare le funzionalità di alta disponibilità di Oracle RAC. L'uso di un indirizzo IP, di un IP SCAN o di un nome host SCAN nel valorerac_hostnamesnon è supportato.Quando si specifica un elenco di nomi host nel parametro
rac_hostnames,CREATE_DATABASE_LINKutilizza tutti i nomi host specificati come indirizzi nella stringa di connessione. Se uno degli host specificati non è disponibile nel database Oracle RAC di destinazione, Autonomous Database tenta automaticamente di connettersi utilizzando un altro nome host dalla lista. -
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKnon supporta il valorelocalhostper il parametrohostnameo nel parametrorac_hostnames.
-