sql >> データベース >  >> RDS >> Oracle

python:Oracleのwallet/tnsnamesを使用してOracleデータベースに接続する

    Java側をcx_Oracleが必要とするC側に変換するのは仕方がありませんが、cx_Oracleが何を必要としているかを示すのに役立つかもしれません。ウォレットを使用して接続するOracleExadataExpressに基づく例を使用します。スクリプト言語をExadataExpressに接続するための一般的な手順を参照してくださいここ 。

    正確な設定とファイルは異なる場合があります。 Anthonyが示したように、セキュリティ設定はcx_Oracleに固有のものではありません。より経験豊富で役立つセキュリティの専門家が他のフォーラムに潜んでいる可能性があります。

    Exadata Expressの場合、事前に提供されたウォレットのzipファイルがダウンロードされます。 cx_OracleなどのOracleCallInterfaceアプリケーションの場合、zipから次のファイルが必要です:sqlnet.ora、tnsnames.ora、およびcwallet.sso。これらの(または必要なもの)ファイルを作成/検索する必要があります。

    私のファイルは次のとおりです:

    sqlnet.ora

    WALLET_LOCATION = (SOURCE = (METHOD = file)
                       (METHOD_DATA = (DIRECTORY="$TNS_ADMIN")))
    
    SSL_SERVER_DN_MATCH=yes
    

    tnsnames.ora

    dbaccess = (description=
              (address=(protocol=tcps)(port=1522)(host=whereever.com))
              (connect_data=(service_name=whereever2.com))   
              (security=(ssl_server_cert_dn="CN=wherever2.com,O=Oracle Corporation,L=Redwood Shores,ST=California,C=US"))  
           )
    

    cwallet.sso :これはあなたの想像に任せます...

    これらの3つのファイルを/Users/cjones/Cloudに配置しました そしてそれらを見つけるための環境を設定します:

    $ export TNS_ADMIN=/Users/cjones/Cloud
    

    これで、tnsnames.oraの接続名を使用して接続できます ファイル:

    $ sqlplus -l cj/[email protected]
    
    SQL*Plus: Release 12.2.0.1.0 Production on Fri Jul 6 10:20:21 2018
    
    Copyright (c) 1982, 2017, Oracle.  All rights reserved.
    
    Last Successful login time: Tue Jul 03 2018 13:00:06 +10:00
    
    Connected to:
    Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
    
    SQL>
    

    cx_Oracleで、dsn dbaccessになります



    1. MySQL OR MATCHが複数のテーブルでハングする(非常に遅い)

    2. 継続的なデータベース監視の改善のための秘訣

    3. クエリが返す行が少なすぎます

    4. 複数の行を返すサブクエリで行を更新する