OSqlEditからAutonomousDB(ATP)に接続(tnsnames.ora使用しない版)


ふとしたきっかけで、tnsnames.oraの接続記述子側(=の右辺側)でwalletフォルダを指定する方法があることを知りました。
ということはsqlnet.oraのWALLET_LOCATIONの指定も省略できて、OSqlEditのTNSの欄に接続記述子をにぶちこめば、tnsnames.oraの接続識別子(=の左辺側)を使う必要もなく、接続できるのでは、と思い試してみました。
結果成功したのでここにやり方を載せます。
AutonomousDBになってsqlnet.ora書き換えるとか、tnsadminのパス設定とかめんどくさい。簡易接続ネーミング・メソッドみたいにOSqlEditの接続設定を一回書くだけで済ましたい、という人向けの記事になります。

前提条件

  • 接続先のAutonomousDBとしては、VPNの外にあるパターンを扱います。AutonomousDBのタイプとしては、ATP(Autonomous Transaction Processing)で試していますがADWでも同じです。
  • Oracle Clientはすでに導入済みを想定
  • OsqlEditはVersion 10.1.3.2
  • Oracle ClientはVersion 19.10.0
  • ATPは19c(Always Free環境)

手順サマリ

  1. OCIコンソールのDB接続からクライアント資格証明(ウォレット)のダウンロードもしくは管理者に共有してもらって自分のローカルPCのフォルダに置く
  2. そのフォルダのtnsnames.oraを開いてMY_WALLET_DIRECTORYの句を追加した接続記述子を作る。
  3. OSqlEditの接続設定。TNSの欄に上記手順で作った接続記述子を入力

手順詳細

OCIコンソールのDB接続からクライアント資格証明(ウォレット)のダウンロード、もしくは管理者に共有してもらって自分のローカルPCのフォルダに置く

こちらの手順と同一のため省略します

そのフォルダのtnsnames.oraを開いてMY_WALLET_DIRECTORYの句を追加した接続記述子を作る。

tnsnamaes.oraを開いたときの記載は下記のようになっています。
(一部マスクと、見やすさのため改行をいれています。実際は一行に全部記載されています)

atpfree_high = (description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=xxxxxx.oraclecloud.com))
(connect_data=(service_name=xxxxxx_atpfree_high.adb.oraclecloud.com))
(security=(ssl_server_cert_dn="CN=xxxxxx.oraclecloud.com,OU=Oracle ADB TOKYO,O=Oracle Corporation,L=Redwood City,ST=California,C=US")))

ここにMY_WALLET_DIRECTORYの句を追記して前の手順でダウンロードしたフォルダを配置した場所を記載します。自分の場合はC:\OracleClient\tns_admin。
他にも環境に応じて(https_proxy)(https_proxy_port)といったプロキシ設定を加えます。
見やすさのため改行を加えています。

(description= (retry_count=20)(retry_delay=3)
(address=(https_proxy=www-proxy.xxxxx.com)(https_proxy_port=80)(protocol=tcps)(port=1522)(host=xxxxxx.oraclecloud.com))
(connect_data(service_name=xxxxxx_atpfree_high.adb.oraclecloud.com))
(security=(ssl_server_cert_dn="CN=xxxxxx.oraclecloud.com,OU=Oracle ADB TOKYO,O=Oracle Corporation,L=Redwood City,ST=California,C=US")
(MY_WALLET_DIRECTORY=C:\OracleClient\tns_admin)))

OSqlEditの接続設定。TNSの欄に上記手順で作った接続記述子を入力

先ほど作った接続記述子をTNSの欄(下記)に入力します。欄は小さいですがかまわず入力します。

接続を確認できたら成功です