Wallet (TLS)を使用しないPythonアプリケーションの接続

ウォレットなしでAutonomous DatabaseインスタンスにPythonアプリケーションを接続できます。ウォレットなし(TLS)でのPythonアプリケーションの接続では、認証および暗号化のセキュリティが提供され、(ユーザー名とパスワードを指定することで)クライアント資格証明を使用してセキュリティが強化されます。

python-oracledbドライバのデフォルトのThinモードは、Oracle Databaseに直接接続されます。オプションで、いくつかの追加機能のためにOracle Clientライブラリ「Thick mode」を使用できます。Oracle Clientライブラリは、Oracle Instant Client、フルOracle Client、またはOracle Databaseインストールから取得できます。

ウォレットを使用せずに(TLS)、Autonomous DatabaseインスタンスにPythonアプリケーションを接続するには、次のステップに従います:

  1. Pythonおよびpython-oracledbドライバのインストール

  2. Autonomous DatabaseでのTLSの有効化および接続文字列の取得

  3. Walletを使用しないPythonアプリケーションの実行

Thickモードの詳細は、python-oracledbのThickモードの有効化を参照してください。

トピック

Autonomous DatabaseでのTLSの有効化および接続文字列の取得

ウォレットを使用せずにPythonアプリケーションを実行するには、TLS接続用のAutonomous Databaseインスタンスを有効にし、Pythonアプリケーションからデータベースに接続するための接続文字列を取得します。
  1. Autonomous DatabaseインスタンスがTLS接続に対して有効化されているかどうかを確認します。

    インスタンスがTLS接続に対して有効になっている場合、Oracle Cloud Infrastructureコンソールの「ネットワーク」領域で、「相互TLS (mTLS)認証」フィールドに「不要」が表示されます:

    adb_mutual_tls_not_required.pngの説明が続きます

    インスタンスに相互TLS認証が必要な場合は、Autonomous DatabaseインスタンスでTLS接続を許可します。詳細は、TLS認証とmTLS認証の両方を許可するためのAutonomous Databaseインスタンスの更新に関する項を参照してください。

  2. データベースにアクセスするためのAutonomous Databaseサービス接続文字列を次のように取得します:
    1. Oracle Cloud Infrastructureコンソールで、「データベース接続」をクリックします。
    2. Select TLS in the Database Connection dialog box, under Connection Strings, in the TLS Authentication drop-down list.
      ノート

      接続文字列をコピーする前に、「TLS認証」ドロップダウンで「TLS」を選択してTLS接続文字列を取得する必要があります(値が「相互TLS」の場合、接続文字列の値は異なり、TLS接続では機能しません)。
    3. アプリケーションで使用するデータベース・サービスの接続文字列をコピーします。
    詳細については、View TNS Names and Connection Strings for an Autonomous Database Instanceを参照してください。

Walletを使用しないPythonアプリケーションの実行

Pythonアプリケーションは、ウォレットを使用せずに(TLS)、Autonomous Databaseインスタンスに接続できます。

  1. Autonomous DatabaseでのTLSの有効化および接続文字列の取得の説明に従って、接続文字列を取得します。
  2. In your Python application, set the following connection parameters to connect to an Autonomous Database instance:
    • dsn: 接続文字列を使用して、必要なデータベース・サービス名を指定します。
    • password: データベース・ユーザー・パスワードを指定します。
    • user: データベース・ユーザーを指定します。

    たとえば、次のとおりです。

    cs='''(description = (retry_count=20)(retry_delay=3)(address=(protocol=tcps)
         (port=1522)(host=xxx.oraclecloud.com))
         (connect_data=(service_name=xxx.adb.oraclecloud.com))
         (security=(ssl_server_dn_match=yes)))'''
    
    connection=oracledb.connect(
         user="admin",
         password=password,
         dsn=cs)
  3. Thickモードに接続する場合は、Pythonアプリケーションにoracledb.init_oracle_client()を含めます。

    たとえば、次のとおりです。

    cs='''(description = (retry_count=20)(retry_delay=3)(address=(protocol=tcps)
         (port=1522)(host=xxx.oraclecloud.com))
         (connect_data=(service_name=xxx.adb.oraclecloud.com))
         (security=(ssl_server_dn_match=yes)))'''
    
    oracledb.init_oracle_client()
    connection=oracledb.connect(
         user="admin",
         password=password,
         dsn=cs)