前提
- ADBが作成済み
- Cloud Shellを利用しています
- 本手順は
クレデンシャル・ウォレット
を使用しSQLcl
とSQL*PLUS
で接続する手順です
Cloud Shellとは
- OCIコンソールから利用できるWebブラウザベースの端末
- Cloud Shell自体は無償
- OCI CLI、SQL PLUS、SQLcl、Terraform、Pythonなどのツールが事前にインストール済み
- 以下の記事がわかりやすいです
手順
1)Cloud Shellを起動
OCIコンソール右上のアイコンから Cloud Shell
を起動します
Cloud Shellが起動されるとOCIコンソールの下に表示されます
左側のハンバーガーメニューから、ローカルマシン上のファイルをCloud Shellへアップロード/ダウンロードや、Cloud Shellのフォント・サイズの設定などが可能です。
2)ADBのクレデンシャル・ウォレットをダウンロード
OCI CLIでのダウンロード方法
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コンソールからのダウンロード方法
ウォレットは2種類あります。
種類 | 内容 | 利用ケース |
---|---|---|
インスタンス・ウォレット(デフォルト) | 特定のインスタンスの資格証明のみが記載 | アプリケーションからの接続で利用 |
リージョナル・ウォレット | 選択されたリージョン内の全てのインスタンスの資格証明が記載 | 他のインスタンスへの接続時も利用できるため、主に管理目的で利用 |
今回はインスタンス・ウォレット
を利用します。
ウォレット・ファイルに付与するパスワードを入力しダウンロード
ローカルマシンにダウンロードされるので、Cloud ShellのハンバーガーメニューからCloud Shellにアップロードすることもできます
- 補足:クレデンシャル・ウォレットについて
出典:OCI活用資料集-Autonomous Database 技術詳細
3)ADBへ接続
SQLclでの接続方法
SQLcl
は無料のコマンドラインツールで```SQL*Plus``よりも多くの機能が備わっています。
SQLclについては、こちらやこちらをご参照ください。
- SQLclへのログイン
$ sql /nolog
- ウォレットをセット
- 今回はOCI CLIでダウンロードしたウォレット・ファイルを使用しています。
SQL> set cloudconfig wallet.zip
-
TNS名の確認。
- OCIコンソールの
DB接続
からTNS名
や接続文字列
を確認できます。
- OCIコンソールの
-
補足
- ウォレット内の
tnsnames.ora
からもTNS名
や接続文字列
を確認できます
- ウォレット内の
-
ADMINユーザで接続
-
接続サービス
については後述
-
SQL> connect admin/<パスワード>@<tns名>
例
SQL> connect admin/Welcome#1Welcome#1@kadw_medium
接続できたか確認
SQL> show user
ADMINユーザで接続できたことがわかります
USER is "ADMIN"
- 補足:接続サービスについて
- 合わせてこちらもご確認ください。
- OCIチュートリアル-201: 接続サービスの理解
出典:OCI活用資料集-Autonomous Database 技術詳細
- OCIチュートリアル-201: 接続サービスの理解
- 合わせてこちらもご確認ください。
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"
参考情報
- OCIドキュメント
- OCIチュートリアル