使用 mTLS 連線 Python 應用程式
適用於: 僅限 Exadata Cloud@Customer
您可以使用 mTLS 將 Python 應用程式連線至您的 Autonomous Database 執行處理。
python-oracledb 驅動程式的預設「精簡模式」會直接連線至 Oracle Database。驅動程式可選擇性地使用 Oracle Client 程式庫「厚模式」來提供一些額外功能。Oracle Client 程式庫可以是 Oracle Instant Client、完整的 Oracle Client 或 Oracle Database 安裝。
請依照下列步驟,使用 mTLS 將您的 Python 應用程式連線至 Autonomous Database 執行處理:
- 安裝 Python 和 python- oracledb 驅動程式
- 取得安全證明資料 (Oracle Wallet) 並啟用網路連線
- 如果您只想以「精簡」模式連線,請執行此步驟:使用 python-oracledb Thin 模式 (mTLS) 執行 Python 應用程式
- 若要以 Thick 模式連線,請執行此步驟:使用 python-oracledb Thick 模式 (mTLS) 執行 Python 應用程式
安裝 Python 和 python- oracledb 驅動程式
若要從您的 Python 應用程式連線到 Autonomous Database ,請安裝 Python 和 python-oracledb 驅動程式。
以 python-oracledb 精簡模式 (mTLS) 執行 Python 應用程式
依照預設,python-oracledb 會使用「精簡」模式直接連線至您的 Autonomous Database 執行處理。
在「精簡」模式中,只需要兩個來自公事包壓縮檔的檔案:
-
tnsnames.ora
:將用於應用程式連線字串的網路服務名稱對應至您的資料庫服務。 -
ewallet.pem
:以精簡模式啟用 SSL/TLS 連線。
以精簡模式連線:
如果您位於防火牆之後,可以使用連線描述區中的 HTTPS_PROXY 或設定連線屬性,透過代理主機通道 TLS/SSL 連線。成功的連線取決於特定的代理主機組態。由於對效能的可能影響,Oracle 不建議在生產環境中使用代理主機。請參閱 Oracle Database 19c Database Net Services Reference 中的 HTTPS_PROXY 或 Oracle Database 23ai Database Net Services Reference ,瞭解詳細資訊。
在「精簡」模式中,您可以新增 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)
以 python- oracledb Thick 模式執行 Python 應用程式 (mTLS)
附註:
執行 Python 時,需要安裝 Oracle Client 程式庫。您也必須在 Python 程式碼中呼叫oracledb.init_oracle_client()
。
在 Thick 模式下,必須從公事包壓縮檔執行下列三個檔案:
-
tnsnames.ora
:包含用於應用程式連線字串的網路服務名稱,並將字串對應至您的資料庫服務。 -
sqlnet.ora
:指定 SQL*Net 從屬端組態。 cwallet.sso
:包含自動開啟的 SSO 公事包。
在 Thick 模式下連線:
如果您位於防火牆之後,可以使用連線描述區中的 HTTPS_PROXY 或設定連線屬性,透過代理主機通道 TLS/SSL 連線。成功的連線取決於特定的代理主機組態。由於對效能的可能影響,Oracle 不建議在生產環境中使用代理主機。請參閱 Oracle Database 19c Database Net Services Reference 中的 HTTPS_PROXY 或 Oracle Database 23ai Database Net Services Reference ,瞭解詳細資訊。
在 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=...)
如需「粗」模式的資訊,請參閱啟用 python-oracledb Thick 模式。