オンプレミス環境からOCI(Oracle Cloud Infrastructure)プライベートサブネット内のOracle Base DB / Autonomous AI DB インスタンスに接続する方法はいくつかあります。その中でも、踏み台サーバを経由する方法は最も一般的です。接続方法としては、主に以下の2つのパターンがあります。
方法-1. 二段階のログイン
- 踏み台サーバはLinuxの場合:

- 踏み台サーバはWindowsの場合:

メリット:
✅ 非常にシンプル。
✅ 踏み台サーバーへのログインが必要な作業に適している。
デメリット:
⏳ 2回のログインが必要で、手間がかかる。
⚠️ 3389番ポートなどをパブリックに公開する必要がある。
🗝️ 接続先の秘密鍵(或いはADBのウォレット)を踏み台サーバに配置する必要がある。
NSGの関連設定
| 紐づいているインスタンス | 方向 | ソース・宛先CIDR | プロトコル | 宛先ポート | 用途 |
|---|---|---|---|---|---|
| 踏み台 (Linux) | Ingress | ソース: Client Public IP | TCP | 22 | 接続端末から踏み台へのSSHを許可 |
| 踏み台 (Linux) | Egress | 宛先: 接続先のPrivate IP | TCP | 22 1521 443 1522 | 踏み台から接続先へのアクセスを許可 |
| 踏み台 (Windows) | Ingress | ソース: Client Public IP | TCP | 3389 | 接続端末から接続先へのアクセスを許可 |
| 踏み台 (Windows) | Egress | 宛先: 接続先のPrivate IP | TCP | 22 1521 443 1522 | 踏み台から接続先へのアクセスを許可 |
| ターゲット (Base DB) | Ingress | ソース: 踏み台のPrivate IP | TCP | 22 1521 | 踏み台からのアクセス(SSH,SQL)を許可 |
| ターゲット (ADB) | Ingress | ソース: 踏み台のPrivate IP | TCP | 443 1522 | 踏み台からADBへのアクセスを許可 |
- Base DBと異なり、ADBインスタンスにSSHログインはできませんので、ご注意ください。
- ADBにはAPEXが実装されています。APEXを利用する場合は、443番ポートを許可する必要があります。SQLのみを利用する場合は、1522番ポートを許可するだけで問題ありません。
方法-2. SSHポート転送
踏み台サーバは Linux の場合、SSHポート転送の手段もあります。

メリット:
✅ 二段階のログインが不要になり、作業の手間を軽減できる。
✅ 公開する必要があるポートは22番のみで済むため、よりセキュアな接続が可能
✅ 秘密鍵を踏み台サーバに配置する必要がない。
✅ 踏み台サーバをLinuxで構築すれば、Windowsサーバを使用するよりコストを抑えられる。
2-1. コマンドラインツールを使用
a) Oracle Base DBにSSHログインする場合
- Step-1) 踏み台サーバとBase DBの秘密鍵をローカル端末に保存する。
※、Base DBの秘密鍵を踏み台サーバに保存しないことを推奨する。 - Step-2) 踏み台サーバにSSHログインする。
ssh -L 22:<basedb_private_ip>:22 opc@<bastion_public_ip> -i C:\Users\<username>\.ssh\<bastion_private_key>- Step-3) 上記のステップが成功したら、別のセッションを開いて、次のコマンドでターゲットに接続する。
ssh localhost -l opc -i C:\Users\<username>\.ssh\<target_private_key>b) Oracle Base DBにSQL Plusで接続する場合
- Step-1) 踏み台サーバの秘密鍵をローカル端末に保存する。
- Step-2) 踏み台サーバにSSHログインする。
ssh -L 1521:<basedb_private_ip>:1521 opc@<bastion_public_ip> -i C:\Users\<username>\.ssh\<bastion_private_key>- Step-3) 上記のステップが成功したら、別のセッションを開いて、次のコマンドでターゲットDBに接続する。
sqlplus <username>/<password>@localhost:1521/<db_service_name>※、ローカルポート番号22や1521が既に使われている場合、次のように8222や11521の番号に置き換えてください。
- Step-2)
ssh -L 11521:<basedb_private_ip>:1521 opc@<bastion_public_ip> -i C:\Users\<username>\.ssh\<bastion_private_key> - Step-3)
sqlplus <username>/<password>@localhost:11521/<db_service_name>
2-2. SQL Developerを使用
- Step-1) 踏み台サーバとBase DBの秘密鍵をローカル端末に保存する。
- Step-2) 踏み台サーバにSSHログインする(ここまでは上記の
2-1-a)と同様)。
ssh -L 22:<basedb_private_ip>:22 opc@<bastion_public_ip> -i C:\Users\<username>\.ssh\<bastion_private_key>- Step-3) ローカル端末でSQL Developerを起動し、以下のように接続設定を行う。
ホスト名の欄にはlocalhostを入力
※、ADBにSQL Plusで接続する場合、上記の手順と同様ですが、ポート番号のところを1522に変更してください。
ウォレットを利用したADB接続は一般的な方法ですが、アクセス・タイプによってはウォレットが必須かどうかが変わります。
- パブリックアクセスの場合(VCNに属さない): ウォレットが必須です。
- VCN内に配置されている場合(今回の構成): ウォレットを使わずに接続することも可能です。
NSGの関連設定
| 紐づいているインスタンス | 方向 | ソース・宛先CIDR | プロトコル | 宛先ポート | 用途 |
|---|---|---|---|---|---|
| 踏み台 | Ingress | ソース: Client Public IP | TCP | 22 | 接続端末から踏み台へのSSHを許可 |
| 踏み台 | Egress | 宛先: Private Subnet CIDR | TCP | 22 1521 443 1522 | 踏み台から接続先へのアクセスを許可 |
| ターゲット (Base DB) | Ingress | ソース: 踏み台のPrivate IP | TCP | 22 1521 | 踏み台からBase DBへのアクセスを許可 |
| ターゲット(ADB) | Ingress | ソース: 踏み台のPrivate IP | TCP | 1522 | 踏み台からADBへのアクセスを許可 |
| ターゲット(ADB) | Ingress | ソース: 踏み台のPrivate IP | TCP | 443 | 踏み台からAPEXへのアクセスを許可(オプション) |
踏み台サーバを経由する方法以外にも、さまざまな手段があります(OCI Bastionサービス、ロード・バランサ、Cloud Shellなど)。詳細については、次の記事をご参照ください。
プライベートサブネット内の Oracle DB (Base DB/ADB) に接続する方法まとめ
プライベートサブネット内の Oracle DB (Base DB/ADB) に接続する方法まとめ
以上