キーストアの自動オープン
実施内容
- 自動ログインのキーストアを作成する
- DBが再起動した際、キーストアが自動でOPENするかを確認する
前提条件
- Keystoreが作成されていること
データベースを再起動すると、Keystoreは通常 CLOSED に戻るため、暗号化表領域を利用するには明示的に OPEN の操作が必要になります。
SQL> select * from v$encryption_wallet;
WRL_TYPE WRL_PARAMETER STATUS WALLET_TYPE WALLET_ORDER KEYSTORE_MODE FULLY_BACKED_UP CON_ID___________ _____________________________________ _________ ______________ _______________ ________________ __________________ _________FILE /opt/oracle/admin/FREE/wallet/tde/ CLOSED UNKNOWN SINGLE NONE UNDEFINED 1FILE CLOSED UNKNOWN SINGLE UNITED UNDEFINED 2FILE CLOSED UNKNOWN SINGLE UNITED UNDEFINED 3手動ですべてのコンテナのKeystoreをOPENする場合は次のコマンドです。
administer key management set keystore open identified by <password> container=all;そこで、ここでは自動ログインキーストアを作成し、Databaseが起動した際に自動でオープンするように設定を行います。
1. キーストアをオープンする
Section titled “1. キーストアをオープンする”まずキーストアが閉じている場合、Keystoreが OPEN できる状態であることを確認します。
オープンしていない場合、以下の手順にてキーストアをオープンします。
SQL> administer key management set keystore open identified by OracleKM123# container = all;
-- オープンしていることを確認するSQL> select * from v$encryption_wallet;
WRL_TYPE WRL_PARAMETER STATUS WALLET_TYPE WALLET_ORDER KEYSTORE_MODE FULLY_BACKED_UP CON_ID___________ _____________________________________ _________ ______________ _______________ ________________ __________________ _________FILE /opt/oracle/admin/FREE/wallet/tde/ OPEN PASSWORD SINGLE NONE NO 1FILE OPEN PASSWORD SINGLE UNITED NO 2FILE OPEN PASSWORD SINGLE UNITED NO 3container=all を付けないと、ルートだけOPENして PDB側が CLOSED のままになるため、ここでは container=all を付けて揃えます。container = all 句を忘れた場合、その後PDBに別途接続しOPENするコマンドを実行します。
2. 自動ログイン・キーストアを作成
Section titled “2. 自動ログイン・キーストアを作成”既存のKeystoreから、自動ログイン・キーストアを作成します。
administer key management create auto_login keystore from keystore identified by OracleKM123#;この操作により、同ディレクトリに cwallet.sso が作成されます。
LOCAL を付けると「そのホストでしか開けない」自動ログインになり、他ホストへコピーして使えません。付けない場合は、原則として他ホストでも開ける自動ログインが作られます。
必要に応じてKeystoreのファイルを確認します。この時点で cwallet.sso が作成され、 ewallet のバックアップも作成されたことが確認できます。
-- 作成されたキーストアを確認SQL> !ls -l /opt/oracle/admin/FREE/wallet/tde/total 24-rw-------. 1 oracle oinstall 5488 Feb 19 13:22 cwallet.sso-rw-------. 1 oracle oinstall 2563 Feb 9 04:12 ewallet_2026020904125329.p12-rw-------. 1 oracle oinstall 4003 Feb 9 04:28 ewallet_2026020904280577.p12-rw-------. 1 oracle oinstall 5443 Feb 9 04:28 ewallet.p12-rw-------. 1 oracle oinstall 0 Feb 9 04:08 ewallet.p12.lckCDBで実行していますが、今回の環境ではPDBも同じKeystoreを共有しているため、PDBも自動でオープンされることになります。
3. DB再起動後に自動で OPEN されることを確認
Section titled “3. DB再起動後に自動で OPEN されることを確認”データベースを再起動し、Keystoreが自動でオープンされるかを確認します。
shu immediatestartup再起動後、v$encryption_wallet を確認します。
SQL> shu immediateDatabase closed.Database dismounted.ORACLE instance shut down.SQL> startupORACLE instance started.
Total System Global Area 1603375136 bytesFixed Size 5009440 bytesVariable Size 687865856 bytesDatabase Buffers 905969664 bytesRedo Buffers 4530176 bytesDatabase mounted.Database opened.SQL> select * from v$encryption_wallet;
WRL_TYPE WRL_PARAMETER STATUS WALLET_TYPE WALLET_ORDER KEYSTORE_MODE FULLY_BACKED_UP CON_ID___________ _____________________________________ _________ ______________ _______________ ________________ __________________ _________FILE /opt/oracle/admin/FREE/wallet/tde/ OPEN AUTOLOGIN SINGLE NONE NO 1FILE OPEN AUTOLOGIN SINGLE UNITED NO 2FILE OPEN AUTOLOGIN SINGLE UNITED NO 3結果を確認すると、STATUS列が OPEN、WALLET_TYPE列が AUTOLOGIN となっており、再起動後も自動でKeystoreがオープンされたことがわかります。