2
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?

More than 3 years have passed since last update.

Autonomous Databaseへ接続(クレデンシャル・ウォレット)

Last updated at Posted at 2022-03-09

前提

  • ADBが作成済み
  • Cloud Shellを利用しています
  • 本手順はクレデンシャル・ウォレットを使用しSQLclSQL*PLUSで接続する手順です

Cloud Shellとは

  • OCIコンソールから利用できるWebブラウザベースの端末
  • Cloud Shell自体は無償
  • OCI CLI、SQL PLUS、SQLcl、Terraform、Pythonなどのツールが事前にインストール済み
  • 以下の記事がわかりやすいです

手順

1)Cloud Shellを起動

OCIコンソール右上のアイコンから Cloud Shell を起動します
c1.png
Cloud Shellが起動されるとOCIコンソールの下に表示されます
c2.png
左側のハンバーガーメニューから、ローカルマシン上のファイルをCloud Shellへアップロード/ダウンロードや、Cloud Shellのフォント・サイズの設定などが可能です。
c3.png

2)ADBのクレデンシャル・ウォレットをダウンロード

OCI CLIでのダウンロード方法

OCIコンソールからADBインスタンスのOCIDを確認
c4.png

Cloud ShellでOCI CLIの確認

$ oci -v

ADBのOCIDを設定

$ db_ocid=<ADBのOCID>

設定されているか確認

$ echo $db_ocid

OCI CLIを使用しクレデンシャル・ウォレットをダウンロード

$ oci db autonomous-database generate-wallet --autonomous-database-id $db_ocid --file wallet.zip --password <ウォレットのパスワード>

$ oci db autonomous-database generate-wallet --autonomous-database-id $db_ocid --file wallet.zip --password <ウォレット・ファイルに付与するパスワード>

wallet.zipがダウンロードされます

$ ls

OCIコンソールからのダウンロード方法

Autonomous Databaseの詳細 → DB接続
c5.png

ウォレットは2種類あります。

種類 内容 利用ケース
インスタンス・ウォレット(デフォルト) 特定のインスタンスの資格証明のみが記載 アプリケーションからの接続で利用
リージョナル・ウォレット 選択されたリージョン内の全てのインスタンスの資格証明が記載 他のインスタンスへの接続時も利用できるため、主に管理目的で利用

今回はインスタンス・ウォレットを利用します。
c6.png
ウォレット・ファイルに付与するパスワードを入力しダウンロード
c6.png
ローカルマシンにダウンロードされるので、Cloud ShellのハンバーガーメニューからCloud Shellにアップロードすることもできます

3)ADBへ接続

SQLclでの接続方法

SQLclは無料のコマンドラインツールで```SQL*Plus``よりも多くの機能が備わっています。
SQLclについては、こちらこちらをご参照ください。

  • SQLclへのログイン
$ sql /nolog
  • ウォレットをセット
    • 今回はOCI CLIでダウンロードしたウォレット・ファイルを使用しています。
SQL> set cloudconfig wallet.zip
  • TNS名の確認。

    • OCIコンソールのDB接続からTNS名接続文字列を確認できます。
  • 補足

    • ウォレット内のtnsnames.oraからもTNS名接続文字列を確認できます
  • ADMINユーザで接続

    • 接続サービスについては後述
SQL> connect admin/<パスワード>@<tns>

SQL> connect admin/Welcome#1Welcome#1@kadw_medium

接続できたか確認

SQL> show user

ADMINユーザで接続できたことがわかります

USER is "ADMIN"

SQL PLUSでの接続方法

  • ウォレット格納用のディレクトリを作成し、ウォレット・ファイルを$HOME/network/admin 配下に移動させます

格納用のディレクトリを作成

$ mkdir -p ~/network/admin

ウォレット・ファイルを移動

$  mv wallet.zip ~/network/admin
  • 作成したディレクトリに移動し、圧縮されたウォレットファイルを展開します。

ディレクトリの移動

$ cd ~/network/admin

ZIPファイルを解凍

$ unzip wallet.zip

確認

$ ls

展開されるファイル

cwallet.sso  ewallet.p12  keystore.jks  ojdbc.properties  README  sqlnet.ora  tnsnames.ora  truststore.jks  wallet.zip
  • TNS_ADMIN 環境変数にウォレットの保存先を設定します。
$ export TNS_ADMIN=~/network/admin
$ echo $TNS_ADMIN
  • sqlnet.ora の次の行を編集し、ウォレットの保存先を置き換えます。
    • 前の手順で、保存先をTNS_ADMIN環境変数に格納しているのでこちらを使います。
$ cp -p sqlnet.ora sqlnet.ora.bk
$ vi sqlnet.ora

編集(「DIRECTORY=」の箇所が「?/network/admin」)

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

編集(「DIRECTORY=」の箇所を「$TNS_ADMIN」に変更)

 WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY=$TNS_ADMIN)))
SSL_SERVER_DN_MATCH=yes
  • 環境変数ORACLE_HOMEを設定
$ export ORACLE_HOME=~
  • echoコマンドで中身を確認し、「/home/[username] 」が出力されればOK
$ echo $ORACLE_HOME
  • ADMINユーザで接続
$ sqlplus admin/<パスワード>@<tns名>

$ sqlplus admin/Welcome#1Welcome#1@kadw_medium
  • 接続できたか確認
SQL> show user

ADMINユーザで接続できたことがわかります

USER is "ADMIN"

参考情報

2
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
2
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?