Mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK
können Sie Datenbanklinks von einer Autonomous Database-Instanz auf einem öffentlichen Endpunkt zu einem Oracle Database Gateway erstellen, um auf Nicht-Oracle-Datenbanken zuzugreifen.
Um Datenbanklinks von einer Autonomous Database-Instanz auf einem öffentlichen Endpunkt zu verwenden, muss das Ziel, das ein Oracle Database Gateway aufweist, so konfiguriert sein, dass TCP/IP mit SSL-(TCPS-)Authentifizierung verwendet wird. Weitere Informationen finden Sie unter Secure Sockets Layer-Authentifizierung konfigurieren.
So erstellen Sie Datenbanklinks von einer Autonomous Database-Instanz auf einem öffentlichen Endpunkt zu einem Oracle Database Gateway-Ziel:
- Kopieren Sie das selbstsignierte Ziel-Wallet von Oracle Database Gateway in den Objektspeicher. Beispiel: Kopieren Sie
cwallet.sso
, das die Zertifikate für Oracle Database Gateway enthält, in den Objektspeicher.
Hinweis
Die Wallet-Datei sowie die Datenbankbenutzer-ID und das Datenbankkennwort ermöglichen den Zugriff auf Daten, die über das Oracle Database Gateway-Ziel verfügbar sind. Speichern Sie die Wallet-Dateien an einem sicheren Speicherort. Geben Sie Wallet-Dateien nur für autorisierte Benutzer frei.
- Erstellen Sie Zugangsdaten für den Zugriff auf den Objektspeicher, in dem Sie die
cwallet.sso
speichern. Informationen zu den Benutzernamen- und Kennwortparametern für verschiedene Objektspeicherservices finden Sie unter Prozedur CREATE_CREDENTIAL.
- Erstellen Sie ein Verzeichnis für die Autonomous Database-Instanz für die Wallet-Datei
cwallet.sso
.
Beispiel:
CREATE DIRECTORY dblink_wallet_dir AS 'directory_path_of_your_choice';
- Mit
DBMS_CLOUD.GET_OBJECT
können Sie das selbstsignierte Wallet des Zielgateways in das Verzeichnis hochladen, das Sie im vorherigen Schritt erstellt haben, DBLINK_WALLET_DIR.
Beispiel:
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 diesem Beispiel ist namespace-string
der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname
der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.
Die credential_name
, die Sie in diesem Schritt verwenden, sind die Zugangsdaten für den Objektspeicher. Im nächsten Schritt erstellen Sie die Zugangsdaten für den Zugriff auf das Zielgateway.
- Erstellen Sie in Ihrer Autonomous Database-Instanz Zugangsdaten für den Zugriff auf die Zieldatenbank. Die
username
und password
, die Sie mit DBMS_CLOUD.CREATE_CREDENTIAL
angeben, sind die Zugangsdaten für die Zieldatenbank, die beim Erstellen des Datenbanklinks verwendet werden sollen (wo auf die Zieldatenbank über Oracle Database Gateway zugegriffen wird).
Geben Sie den Parameter credential_name
an.
Beispiel:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'DB_LINK_CRED',
username => 'NICK',
password => 'password'
);
END;
/
Die Zeichen im Parameter username
müssen Großbuchstaben enthalten.
Dieser Vorgang speichert die Zugangsdaten in einem verschlüsselten Format in der Datenbank. Sie können einen beliebigen Namen für den Zugangsdatennamen verwenden.
- Erstellen Sie einen Datenbanklink für den Zugriff auf das Zielgateway mit
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK
.
Beispiel:
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);
END;
/
Andere Benutzer als ADMIN benötigen Berechtigungen zum Ausführen von DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK
.
- Verwenden Sie den Datenbanklink, um auf Daten im Zielgateway zuzugreifen.
Beispiel:
SELECT * FROM employees@SALESLINK;
Für die Zugangsdaten, die Sie in Schritt 5 erstellen, die Oracle Database Gateway-Zugangsdaten. Wenn sich das Kennwort des Zielbenutzers ändert, können Sie die Zugangsdaten mit den Zugangsdaten des Zielbenutzers wie folgt aktualisieren:
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL
(
credential_name => 'DB_LINK_CRED',
attribute => 'PASSWORD',
value => 'password');
END;
/
Dabei ist password das neue Kennwort.
Nach diesem Vorgang funktionieren die vorhandenen Datenbanklinks, die diese Zugangsdaten verwenden, weiter, ohne die Datenbanklinks löschen und neu erstellen zu müssen.
Im folgenden Beispiel wird gezeigt, wie Sie einen Datenbanklink zu einem Oracle Database Gateway für den Zugriff auf eine Microsoft SQL Server-Datenbank erstellen:
Zugriff auf Nicht-Oracle-Datenbanken von Autonomous Database mit Oracle Database Gateway
Weitere Informationen finden Sie hier: