3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【オンプレDBAのためのクラウド転生ガイド_第4話】魔法陣(Wallet)がないと入れない!?ADBへの接続はこう使え

3
Last updated at Posted at 2025-08-08

ADBの扉は、簡単には開かせてくれなかった

オンプレ時代――DBに接続するとき、俺たちはこうしていた。

sqlplus [username]/[password]@[DB名]

あるいは、tnsnames.ora をゴリゴリ書き換えて、複雑な環境でも接続できるようにするのがDBAの腕の見せ所だった。

だがADBは違った。
ADBは、“Wallet”という魔法陣がないと入れない世界だった。

Walletってなんだ?

Walletとは、ADBへの接続に必要なすべての情報が詰まったZIPファイルだ。

中には:

  • 接続用証明書 (.pemファイル)
    • クライアントの認証や通信の暗号化に使用される証明書(例: cwallet.sso, ewallet.p12, truststore.jksなど)
  • 秘密鍵
    • サーバーとの安全な通信を確立するためのキーファイル(証明書バンドル内に格納)
  • 接続文字列ファイル(tnsnames.ora)
    • ADBインスタンスへの接続に必要なサービス名/エンドポイント情報が記載されている
  • 接続設定ファイル(sqlnet.ora)
    • セキュア接続やWalletの参照パス、SSL/TLS設定などが記載されている
  • READMEファイル(README.txt)
    • Walletの使用方法やセットアップ手順を説明したテキストファイル

などが入っていて、これらがADBの認証と暗号化通信の鍵になっている。

OCIの画面からダウンロードして、ローカルの適切なディレクトリに展開し、それを使ってSQL DeveloperやSQL*Plusから接続する仕組みだ。

オンプレDBAが最初にハマる3つのポイント

1. Walletファイルの場所を指定しないと接続できない

OCIからWalletをダウンロードして、ZIPを回答したーー
しかし、それだけでは ADBという異世界の扉は開かない。

「魔法陣は描いた。だが、どこにあるのかを教えてやらねばなるまい」

そう、Walletファイルの"場所"をOralceクライアントに教える必要がる。
その方法こそが、我らの TNS_ADMINの設定 だ!

TNS_ADMIN 環境変数にウォレットの保存先を設定する

export TNS_ADMIN=[ウォレットの保存先ディレクトリ]

次に、sqlnet.ora の下記の行を編集し、ウォレットの保存先を置き換える

編集前:

WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="?/network/admin")))

編集後:

WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY=$TNS_ADMIN)))

オンプレ時代の俺は、sqlnet.oraを手書きしていた。
 - SSL接続設定
 - ログ出力場所
 - タイムアウト制御
 - 認証方式の切り替え
 ・・・
それらをすべてこのファイルで制御していた。まさに”通信魔法の呪文書”だった。
しかし、ADBのWallet ZIPには最初からsqlnet.oraが準備されている!
呪文書はもう記す必要がないーーすでに魔法陣に刻まれていたから。。。

※ Walletを利用した接続方法は、OCI公式チュートリアルに手順が載っています。
https://oracle-japan.github.io/ocitutorials/adb/adb104-connect-using-wallet/#anchor3-3

2. 接続名(TNS)が独特すぎる

Wallet内の tnsnames.ora に定義されているTNS名はこうなっている:

[DB名]_low
[DB名]_medium
[DB名]_high

「なんだこれ?」と思うが、これは接続時の同時実行性や並列処理などの違いを表している。
(簡単に言うと、負荷調整用のプロファイル)

※OCI公式文書で、接続サービスは理解しておこう
https://oracle-japan.github.io/ocitutorials/adb/adb201-service-names/

3. SQL DeveloperなどGUIツールの設定がややこしい

Walletを使うためには、SQL Developerの「詳細接続」画面で接続タイプ「クラウド・ウォレット」や「サービス名」「ディレクトリ」を明示的に指定する必要がある。

GUIツールでADBに接続しようとして
「ORA-29024: Certificate validation failure」

…となって泣いたのは俺だけじゃないはず。

※ SQL Developer を使った接続方法も、OCI公式チュートリアルに手順が載っています。
https://oracle-japan.github.io/ocitutorials/adb/adb104-connect-using-wallet/#anchor3-3

セキュリティが違う、それは責任も違う

ADBに接続するには、 「正しいWallet」「クライアント側の設定」 が必須。

これはめんどくさいというより、セキュリティ設計がクラウド用に最適化されているということだ。

オンプレでは自社のネットワークが“盾”だったが、クラウドでは「Walletが盾であり鍵」。

接続はハードル。でも越えたら世界が変わる

ADBに接続できるようになると、そこには

SQL Developerでの視覚的な操作
OCIコンソールからの管理操作
APEXなどのWeb UIサービス

…など、オンプレでは味わえなかった快適な操作空間が待っていた。

「あ、俺、ADBに住めるかも」

ちょっとだけ、そう思った。

次回予告

第5話|自動パッチと自動バックアップに戸惑うDBAの叫び
「気づいたらパッチが当たってた!?」「バックアップが勝手に取られてる?」
そんな自動化の嵐の中で、DBAとしての不安と希望が交錯する。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?