Oracle
  • 18 Oct 2024
  • 2 Minutes to read
  • Dark
    Light

Oracle

  • Dark
    Light

Article summary

Overview

In this article we will explain how to connect an Oracle database to Preset. So let's get started!


Allowlist Preset IPs

Preset Cloud runs on four regions. For Preset to access your data, first thing you need to do is to add region based Preset IP addresses to your Inbound and Outbound firewall rules.

us-west-2 (us1a)us-east-1 (us2a)eu-north-1 (eu5a)ap-northeast-1 (ap1a)
35.161.45.1144.193.153.19613.48.95.335.74.159.67
54.244.23.8552.70.123.5213.51.212.16535.75.171.157
52.32.136.3454.83.88.9316.170.49.2452.193.196.211

If you are not sure where your Preset workspace is located, you can refer to the URL on your browser when accessing Preset. It should look like this: https://xxxxxxxx.us2a.app.preset.io/superset..., where us2a means it is in us-east-1.


Step 1: Retrieve Data from Oracle

You'll need the following details from your Oracle instance:

  • The tnsnames.ora file.
  • The ewallet.pem key.
  • The wallet password (if applicable).

If you are using an Oracle Cloud instance, these information is included in the wallet that can be downloaded from the UI, in the Database connection setting.


Step 2: Connect Database to Preset

Add Database

Let's start by selecting + Database — have a look at Connecting your Data if you need help with this step.

...then, in the Connect a database window, select Oracle in the Supported Databases field.

Oracle_Select_Database.png

In the Display Name field, enter a meaningful name for the new connection to the Oracle database. In this example, we simply used the default Oracle.

In the SQLAlchemy URI field, customize your URI connection string using the following syntax:

oracle+oracledb://<User>:<password>@<TNSName>
TNS Configuration

Your tnsnames.ora file might include multiple TNS Names. Choose the one you're looking to connect to.

When done, select the Advanced tab.

Oracle_Basic_Connection.png

Configure Advanced Tab

In Preset with the ADVANCED tab selected, expand the Security section. The additional connection configuration should be added to the SECURE EXTRA field:

{
  "configuration_files": {
    "tnsnames.ora": "<TSNames Content>",
    "ewallet.pem": "<Wallet Content>"
  }
}

If your wallet has a password set, use below configuration:

{
  "configuration_files": {
    "tnsnames.ora": "<tsnames.ora file content>",
    "ewallet.pem": "<ewallet.pem file content>"
  },
  "connect_args": {
    "wallet_password": "<Password>"
  }
}

Note that the content for each file should be a single string block. Line breaks can be replaced with \n (each).

You can also use below Python script to automatically generate this content (the Python script must be created inside the wallet directory):

import json

print(
    json.dumps(
        {
            "connect_args": {"wallet_password": "<Password>"},
            "configuration_files": {
                "tnsnames.ora": open("tnsnames.ora").read(),
                "ewallet.pem": open("ewallet.pem").read(),
            },
        }
    )
)

When done, return to the previous screen by selecting the Basic tab.

Test and Connect

To test your connection, select Test Connection. If successful, a notification message appears:

Aurora_PostgreSQL_Connection_Looks_Good

After a successful test, go ahead and select Connect to finalize the connection.

Congratulations, your Oracle database is now connected to Preset!


Was this article helpful?

What's Next