mTLS를 사용하여 Python 응용 프로그램 연결
적용 대상: Exadata Cloud@Customer만 해당
mTLS를 사용하여 Autonomous Database 인스턴스에 Python 애플리케이션을 연결할 수 있습니다.
python-oracledb 드라이버의 기본 "Thin 모드"는 Oracle Database에 직접 연결됩니다. 드라이버는 일부 추가 기능을 위해 선택적으로 Oracle Client 라이브러리 "Thick 모드"를 사용할 수 있습니다. Oracle Client 라이브러리는 Oracle Instant Client, 전체 Oracle Client 또는 Oracle Database 설치 라이브러리일 수 있습니다.
다음 단계에 따라 mTLS를 사용하여 Python 애플리케이션을 Autonomous Database 인스턴스에 연결합니다.
- Python 및 python-oracledb 드라이버 설치
- 보안 인증서 획득(Oracle Wallet) 및 네트워크 연결 활성화
- Thin 모드로만 접속하려는 경우 이 단계를 수행합니다. python-oracledb Thin Mode(mTLS)로 Python 애플리케이션 실행
- Thick 모드로 연결하려면 다음 단계를 수행하십시오. Run Python Application with python-oracledb Thick Mode (mTLS)
Python 및 python-oracledb 드라이버 설치
Python 애플리케이션에서 Autonomous Database에 연결하려면 Python 및 python-oracledb 드라이버를 설치합니다.
python-oracledb Thin Mode(mTLS)로 Python 애플리케이션 실행
기본적으로 python-oracledb는 Thin 모드를 사용하여 Autonomous Database 인스턴스에 직접 연결합니다.
Thin 모드에서는 전자 지갑 zip의 두 파일만 필요합니다.
-
tnsnames.ora
: 응용 프로그램 연결 문자열에 사용되는 네트 서비스 이름을 데이터베이스 서비스에 매핑합니다. -
ewallet.pem
: 가상 모드에서 SSL/TLS 접속을 사용으로 설정합니다.
Thin 모드로 연결하려면 다음을 수행합니다.
방화벽 뒤에 있는 경우 연결 기술자에서 HTTPS_PROXY를 사용하거나 연결 속성을 설정하여 프록시를 통해 TLS/SSL 연결을 터널링할 수 있습니다. 성공한 연결은 특정 프록시 구성에 따라 다릅니다. Oracle은 성능에 영향을 줄 수 있으므로 운용 환경에서 프록시 사용을 권장하지 않습니다. 자세한 내용은 HTTPS_PROXY in Oracle Database 19c Database Net Services Reference 또는 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 Mode(mTLS)로 Python 애플리케이션 실행
주:
굵은 모드에서는 Python을 실행하는 Oracle Client 라이브러리가 설치되어 있어야 합니다. 또한 Python 코드에서oracledb.init_oracle_client()
을 호출해야 합니다.
Thick 모드에서는 전자 지갑 zip 파일의 다음 세 파일이 필요합니다.
-
tnsnames.ora
: 애플리케이션 접속 문자열에 사용되는 네트 서비스 이름을 포함하고 문자열을 데이터베이스 서비스에 매핑합니다. -
sqlnet.ora
: SQL*Net 클라이언트측 구성을 지정합니다. cwallet.sso
: 자동 열린 SSO 전자 지갑을 포함합니다.
Thick 모드로 연결하려면 다음을 수행합니다.
방화벽 뒤에 있는 경우 연결 기술자에서 HTTPS_PROXY를 사용하거나 연결 속성을 설정하여 프록시를 통해 TLS/SSL 연결을 터널링할 수 있습니다. 성공한 연결은 특정 프록시 구성에 따라 다릅니다. Oracle은 성능에 영향을 줄 수 있으므로 운용 환경에서 프록시 사용을 권장하지 않습니다. 자세한 내용은 HTTPS_PROXY in Oracle Database 19c Database Net Services Reference 또는 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=...)
Thick 모드에 대한 자세한 내용은 python-oracledb Thick 모드 사용을 참조하십시오.