JavaScript must be enabled to correctly display this content
Connect Python Applications Using TLS
You can connect Python applications to your Autonomous Database instance without a walletusing TLS. Connecting a Python application without a wallet (TLS)with TLS provides security for authentication and encryption, and security is enforced using client credentials (by providing a username and password).
The Python python-oracledb driver's default "Thin mode" connects directly to
Oracle Database. It can optionally use Oracle Client libraries ("Thick mode") for some
additional functionality. The Oracle Client libraries can be from Oracle Instant Client,
the full Oracle Client, or an Oracle Database installation.
Follow these steps to connect your Python application to an Autonomous Database instance without a wallet (TLS)using TLS:
The python-oracledb driver is a Python programming
language extension module allowing Python programs to connect to
Oracle Database. It is the renamed, new major release of the popular
cx_Oracle driver.
In the case where you do not have permission to write to
system directories, include the --user option. For
example:
python -m pip install oracledb --upgrade --user
If a binary package is not available for your platform,
running pip will download the source package
instead. The source is compiled and the resulting binary is
installed.
If you want to use the python-oracledb driver in Thick mode, install Oracle
Client software.
By default, python-oracledb runs in Thin mode which connects
directly to Oracle Database. Thin mode does not require Oracle Client
libraries. However, some additional functionality is available when
python-oracledb runs in Thick mode.
Note:
See Oracle Database Features
Supported by python-oracledb for information on supported
features in python-oracledb Thin and Thick modes. Not all of the features
shown in this link are available with Autonomous Database.
Python-oracledb uses Thick mode when you use either the Oracle
Instant client libraries or the Oracle Database Client libraries and you
call oracledb.init_oracle_client() in your Python code.
When you install Oracle Client Software, there are differences in
required minimum versions for mTLS and TLS connections, as follows:
Mutual TLS (mTLS) Connections:
If your database is on a remote computer, then
download the free Oracle Instant
Client “Basic” or “Basic Light” package for your
operating system architecture. Use Oracle Instant Client
12.1.0.2 (or higher).
Alternatively, you can use the Full Oracle Database
client libraries when they are available on your system
(including Full Oracle Database Client 11.2.0.4 or higher).
TLS Connections: Oracle Call Interface (OCI) clients support TLS authentication without a wallet if you are using the following client versions:
Oracle Instant Client/Oracle
Database Client 19.14 (or later) and 21.5 (or later) - all
platforms
Alternatively, you can use the Full Oracle Database
client libraries when they are available on your system,
including Full Oracle Database Client 19.14 (or later) and 21.5
(or later).
Enable TLS on Autonomous Database and Obtain Connection
String
APPLIES TO: Exadata Cloud@Customer only
To run a Python application without a walletusing TLS, enable the Autonomous Database instance for TLS connections and obtain a connection string to contact the database from the Python application.
Determine if your Autonomous Database
instance is enabled for TLS connections.
If the instance is enabled for TLS connections, in the Network area on the details page of the parent Autonomous VM Cluster (AVMC) resource shows One way TLS for Authentication Mode.
If the instance is enabled for TLS connections, in the Network area on the Oracle Cloud
Infrastructure Console the Mutual TLS (mTLS) authentication field shows: Not Required:
Obtain an Autonomous Database service
connection string to access the database as follows:
On the details page of your database, click DB Connection.
Copy the Connection String for the database service you want to use with your application.
On the Oracle Cloud
Infrastructure Console, click DB Connection.
Select TLS in the Database Connection dialog box, under Connection Strings, in the TLS Authentication drop-down list.
Note:
You must select TLS in the TLS Authentication drop-down to obtain the TLS connection strings before you copy a connection string (when the value is Mutual TLS the connection strings have different values and do not work with TLS connections).
Copy the Connection String for the database service you want to use with your application.
See for more information.
Run Python Application Without a WalletUsing TLS
A Python application can connect to your Autonomous Database instance without a wallet (TLS)with TLS using the database credentials and a connect descriptor.