Wallet (TLS)を使用しないPythonアプリケーションの接続
Pythonアプリケーションは、ウォレットなしでAutonomous AI Databaseインスタンスに接続できます。ウォレット(TLS)なしでPythonアプリケーションを接続すると、認証および暗号化のセキュリティが提供され、(ユーザー名とパスワードを指定することで)クライアント資格証明を使用してセキュリティが強制されます。
python-oracledbドライバのデフォルトの「シン・モード」は、Oracle AI Databaseに直接接続します。追加の機能のために、オプションでOracle Clientライブラリ「Thick mode」を使用できます。Oracle Clientライブラリは、Oracle Instant Client、完全なOracle Client、またはOracle AI Databaseインストールから入手できます。
次のステップに従って、Pythonアプリケーションをウォレット(TLS)なしでAutonomous AI Databaseインスタンスに接続します:
Thickモードの詳細は、python-oracledb Thickモードの有効化を参照してください。
自律型AIデータベースでのTLSの有効化および接続文字列の取得
ウォレットなしでPythonアプリケーションを実行するには、TLS接続に対してAutonomous AI Databaseインスタンスを有効にし、Pythonアプリケーションからデータベースに接続するための接続文字列を取得します。
-
自律型AIデータベース・インスタンスがTLS接続に対して有効になっているかどうかを確認します。
インスタンスがTLS接続に対して有効化されている場合、Oracle Cloud Infrastructure Consoleの「ネットワーク」領域で、「相互TLS (mTLS)認証」フィールドに「不要」と表示されます。
インスタンスで相互TLS認証が必要な場合は、Autonomous AI DatabaseインスタンスでTLS接続を許可します。詳細は、TLS認証とmTLS認証の両方を許可するようにAutonomous AIデータベース・インスタンスの更新を参照してください。
-
次のように、Autonomous AI Databaseサービス接続文字列を取得してデータベースにアクセスします:
-
Oracle Cloud Infrastructure Consoleで、「データベース接続」をクリックします。
-
「データベース接続」ダイアログ・ボックスの「接続文字列」の下の「TLS」を「TLS認証」ドロップダウン・リストで選択します。
ノート
ノート:接続文字列をコピーする前に、TLS接続文字列を取得するには、「TLS認証」ドロップダウンで「TLS」を選択する必要があります(値が「相互TLS」の場合、接続文字列の値は異なり、TLS接続では機能しません)。
-
-
アプリケーションで使用するデータベース・サービスの接続文字列をコピーします。
詳細は、Autonomous AIデータベース・インスタンスのTNS名および接続文字列の表示を参照してください。
Walletを使用しないPythonアプリケーションの実行
Pythonアプリケーションは、データベース資格証明および接続記述子を使用して、ウォレット(TLS)なしでAutonomous AI Databaseインスタンスに接続できます。
-
Autonomous AI DatabaseでのTLSの有効化および接続文字列の取得の説明に従って、接続文字列を取得します。
-
Pythonアプリケーションで、次の接続パラメータを設定して、Autonomous AI Databaseインスタンスに接続します:
-
dsn: 接続文字列を使用して、目的のデータベース・サービス名を指定します。 -
password: データベース・ユーザーのパスワードを指定します。 -
user: データベース・ユーザーを指定します。
たとえば:
cs='''(description = (retry_count=20)(retry_delay=3)(address=(protocol=tcps) (port=1521)(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) -
-
Thickモードで接続する場合は、Pythonアプリケーションに
oracledb.init_oracle_client()を含めます。たとえば:
cs='''(description = (retry_count=20)(retry_delay=3)(address=(protocol=tcps) (port=1521)(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)