mTLSを使用したPythonアプリケーションの接続
適用対象: Exadata Cloud@Customerのみ
mTLSを使用してAutonomous DatabaseインスタンスにPythonアプリケーションを接続できます。
python-oracledbドライバのデフォルトのThinモードは、Oracle Databaseに直接接続します。ドライバはオプションで、いくつかの追加機能のためにOracle Clientライブラリを使用できます。Oracle Clientライブラリは、Oracle Instant Client、フル Oracle Client、または Oracle Databaseインストールから取得できます。
mTLSを使用して、Autonomous DatabaseインスタンスにPythonアプリケーションを接続するには、次のステップを実行します:
- Pythonおよびpython-oracledbドライバのインストール
- セキュリティ資格証明(Oracle Wallet)の取得およびネットワーク接続の有効化
- シン・モードでのみ接続する場合は、このステップを実行します: python-oracledbシン・モード(mTLS)を使用したPythonアプリケーションの実行
- Thickモードで接続する場合は、このステップを実行します: python-oracledb Thickモード(mTLS)でPythonアプリケーションを実行します
- Pythonおよびpython-oracledbドライバのインストール
PythonアプリケーションからAutonomous Databaseに接続するには、Pythonおよびpython-oracledbドライバをインストールします。 - セキュリティ資格証明(Oracle Wallet)の取得およびネットワーク接続の有効化
クライアント・セキュリティ資格証明を取得して、Autonomous Databaseインスタンスに接続します。 - python-oracledb Thinモード(mTLS)を使用したPythonアプリケーションの実行
デフォルトでは、python-oracledbはThinモードを使用してAutonomous Databaseインスタンスに直接接続します。 - python-oracledb Thickモード(mTLS)を使用したPythonアプリケーションの実行
デフォルトでは、python-oracledbはOracle Databaseに直接接続されるThinモードで実行されます。ドライバがThickモードで実行されている場合、追加のpython-oracledb機能を使用できます。
親トピック: Autonomous Databaseへの接続
Pythonおよびpython-oracledbドライバのインストール
PythonアプリケーションからAutonomous Databaseに接続するには、Pythonおよびpython-oracledbドライバをインストールします。
親トピック: mTLSを使用したPythonアプリケーションの接続
セキュリティ資格証明(Oracle Wallet)の取得およびネットワーク接続の有効化
クライアント・セキュリティ資格証明を取得して、Autonomous Databaseインスタンスに接続します。
親トピック: mTLSを使用したPythonアプリケーションの接続
python-oracledb Thinモード(mTLS)を使用したPythonアプリケーションの実行
デフォルトでは、python-oracledbはThinモードを使用してAutonomous Databaseインスタンスに直接接続します。
Thinモードでは、ウォレットzipの2つのファイルのみが必要です:
-
tnsnames.ora
: アプリケーション接続文字列に使用されるネット・サービス名をデータベース・サービスにマップします。 -
ewallet.pem
: ThinモードでSSL/TLS接続を有効にします。
Thinモードで接続するには:
ファイアウォールの内側にいる場合は、接続記述子でHTTPS_PROXYを使用するか、接続属性を設定することによって、プロキシを介してTLS/SSL接続をトンネルできます。接続が成功するかどうかは、特定のプロキシ構成によって異なります。パフォーマンスに影響する可能性があるため、Oracleではプロキシを使用しないでください。
Thinモードでは、https_proxy
およびhttp_proxy_port
パラメータを追加してプロキシを指定できます。
たとえば、Linuxでは:
connection=oracledb.connect(
config_dir="/opt/OracleCloud/MYDB",
user="admin",
password=password,
dsn="db2024_low",
wallet_location="/opt/OracleCloud/MYDB",
wallet_password=wallet_pw,
https_proxy='myproxy.example.com',
https_proxy_port=80)
たとえば、Windowsでは次のように指定します。
connection=oracledb.connect(
config_dir=r"C:\opt\OracleCloud\MYDB",
user="admin",
password=password,
dsn="db2024_low",
wallet_location=r"C:\opt\OracleCloud\MYDB",
wallet_password=wallet_pw,
https_proxy='myproxy.example.com',
https_proxy_port=80)
親トピック: mTLSを使用したPythonアプリケーションの接続
python-oracledb Thickモード(mTLS)を使用したPythonアプリケーションの実行
厚いモードでは、Pythonを実行する場所にOracle Clientライブラリがインストールされている必要があります。また、Pythonコードで
oracledb.init_oracle_client()
をコールする必要があります。
Thickモードでは、ウォレットzipファイルの次の3つのファイルが必要です:
-
tnsnames.ora
: アプリケーション接続文字列に使用されるネット・サービス名を含み、その文字列をデータベース・サービスにマップします。 -
sqlnet.ora
: SQL*Netクライアント側の構成を指定します。 cwallet.SSO
: 自動オープンSSOウォレットが含まれます。
Thickモードで接続するには:
ファイアウォールの内側にいる場合は、接続記述子でHTTPS_PROXYを使用するか、接続属性を設定することによって、プロキシを介してTLS/SSL接続をトンネルできます。接続が成功するかどうかは、特定のプロキシ構成によって異なります。パフォーマンスに影響する可能性があるため、Oracleではプロキシを使用しないでください。
Thickモードでは、sqlnet.ora
ファイルを編集して行を追加することで、プロキシを指定できます:
SQLNET.USE_HTTPS_PROXY=on
また、tnsnames.ora
を編集し、使用する予定のサービス名の接続記述子アドレス・リストにHTTPS_PROXY
プロキシ名とHTTPS_PROXY_PORT
ポートを追加します。
例:
mydb_high=(description=
(address=(https_proxy=myproxy.example.com)
(https_proxy_port=80)
(protocol=tcps)(port=1522)(host=...)
Thickモードの詳細は、python-oracledbのThickモードの有効化を参照してください。
親トピック: mTLSを使用したPythonアプリケーションの接続