Create Database Links with
Customer-Managed Heterogeneous Connectivity to Non-Oracle Databases on a Private
Endpoint
You can
create database links from an Autonomous Database
to an Oracle Database Gateway to access Non-Oracle databases that are on a private
endpoint.
This section covers the steps for using database links to connect from Autonomous Database to a non-Oracle Database
that through an Oracle Database Gateway, where the non-Oracle Database is on a private
endpoint.
Prerequisites to Create Database
Links with Customer-Managed Heterogeneous Connectivity to Non-Oracle Databases on a Private
Endpoint 🔗
Lists the
prerequisites to create database links from an Autonomous Database with Customer-Managed Heterogeneous Connectivity to Non-Oracle Databases that
are on a Private Endpoint.
To create a database link with Customer-Managed Heterogeneous Connectivity to
Non-Oracle Databases that are on a Private Endpoint:
The target database must be accessible from the source database's Oracle Cloud
Infrastructure VCN. For example, you can connect to the target database when:
The target database is on a private endpoint.
Both the source database and the target database are in the same Oracle Cloud
Infrastructure VCN.
The source database and the target database are in different Oracle Cloud
Infrastructure VCNs that are paired.
For a target on a private endpoint, DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK
supports specifying a single hostname with the
hostname parameter. On a private endpoint,
using an IP address, SCAN IP, or a SCAN hostname is not supported
(when the target is on a public endpoint,
CREATE_DATABASE_LINK supports using an IP
address, a SCAN IP, or a SCAN hostname).
The following ingress and egress rules must be defined for the private endpoint:
Define an egress rule in the source database's subnet security list or
network security group such that the traffic over TCP is allowed to the target
database's IP address and port number.
Define an ingress rule in the target database's subnet security list or
network security group such that the traffic over TCP is allowed from the source
database IP address to the destination port.
When your Autonomous Database instance is configured with a
private endpoint, set the ROUTE_OUTBOUND_CONNECTIONS database parameter to
'PRIVATE_ENDPOINT' to specify that all outgoing database links are
subject to the Autonomous Database instance
private endpoint VCN's egress rules. See Enhanced Security for Outbound Connections with Private Endpoints for more information.
Create Database Links with
Customer-Managed Heterogeneous Connectivity to Non-Oracle Databases on a Private Endpoint
(without a wallet) 🔗
You can
create database links from an Autonomous Database
instance to an Oracle Database Gateway to access Non-Oracle databases that are on a private
endpoint, connecting either with a wallet (TCPS) or without a wallet (TLS).
To create database links from an Autonomous Database instance on a private endpoint to a target Oracle Database Gateway,
connecting without a wallet (TLS):
On Autonomous Database create credentials to
access the target database. The username and password
you specify with DBMS_CLOUD.CREATE_CREDENTIAL
are the credentials for the target database used within the database link, (where the
target database is accessed through the Oracle Database Gateway).
Supplying the credential_name parameter is required.
The ssl_server_cert_dn parameter is optional if the connection is
created as a TCP based database link (without a wallet).
When the directory_name is NULL, the
connection is created as a TCP based database link (without a wallet).
The private_target parameter must be set to
TRUE when the target non-Oracle Database is on a private endpoint
(that is, the database link accesses a hostname that needs to be resolved in a VCN DNS
server). When private_target is TRUE, the
hostname parameter must be a single hostname (on a private endpoint, using an IP
address, a SCAN IP, or a SCAN hostname is not supported).
When gateway_link is TRUE and
gateway_params is NULL, this specifies that the
database link is to a customer-managed Oracle gateway.
Users other than ADMIN require
privileges to run DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.
Use the database link you created to access data on the target gateway.
For example:
SELECT * FROM employees@SALESLINK;
For the credentials you create in Step 1, the Oracle Database Gateway credentials, if the
password of the target user changes you can update the credential that contains the target
user's credentials as follows:
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL (
credential_name => 'DB_LINK_CRED',
attribute => 'PASSWORD',
value => 'password');
END;
/
Where password is the new
password.
After this operation, the existing database links that use this credential
continue to work without having to drop and recreate the database links.
Create Database Links with
Customer-Managed Heterogeneous Connectivity to Non-Oracle Databases on a Private Endpoint (with
a Wallet) 🔗
You can
create database links from an Autonomous Database
instance to an Oracle Database Gateway to access Non-Oracle databases that are on a private
endpoint, connecting either with a wallet (TCPS) or without a wallet (TLS).
To create database links from an Autonomous Database instance on a private endpoint to a target Oracle Database Gateway, and
connect without a wallet:
Copy the target Oracle Database Gateway self-signed wallet to Object Store. For
example, copy cwallet.sso, containing the certificates for the Oracle
Database Gateway, to Object Store.
The wallet file, along with the Database user ID and password provide
access to data available through the target gateway. Store wallet files in a secure
location. Share wallet files only with authorized users.
Create credentials to access the Object Store where you store the
cwallet.sso. See CREATE_CREDENTIAL Procedure for information about the username and password parameters for different
object storage services.
Create a directory on Autonomous Database for
the wallet file cwallet.sso.
For example:
CREATE DIRECTORY dblink_wallet_dir AS 'directory_path_of_your_choice';
In this example, namespace-string is the Oracle
Cloud Infrastructure object storage namespace and
bucketname is the bucket
name. See Understanding
Object Storage Namespaces for more
information.
Note
The credential_name
you use in this step is the credentials for the Object Store. In the next step you
create the credentials to access the target gateway.
On Autonomous Database create credentials to
access the target database. The username and password
you specify with DBMS_CLOUD.CREATE_CREDENTIAL
are the credentials for the target database used within the database link, (where the
target database is accessed through the Oracle Database Gateway).
Supplying the credential_name parameter is required.
If directory_name is not NULL, a
TCPS-based database link is created.
The private_target parameter must be set to
TRUE when the target non-Oracle Database is on a private endpoint
(that is, the database link accesses a hostname that needs to be resolved in a VCN DNS
server). When private_target is TRUE, the
hostname parameter must be a single hostname (on a private endpoint, using an IP
address, a SCAN IP, or a SCAN hostname is not supported).
When gateway_link is TRUE and
gateway_params is NULL, this specifies that the
database link is to a customer-managed Oracle gateway.
Users other than ADMIN require
privileges to run DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.
Use the database link you created to access data on the target gateway.
For example:
SELECT * FROM employees@SALESLINK;
For the credentials you create in Step 5, the Oracle Database Gateway credentials, if the
password of the target user changes you can update the credential that contains the target
user's credentials as follows:
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL (
credential_name => 'DB_LINK_CRED',
attribute => 'PASSWORD',
value => 'password');
END;
/
Where password is the new
password.
After this operation, the existing database links that use this credential
continue to work without having to drop and recreate the database links.