この記事ではORA-28417: パスワードベースのキーストアがオープンではありません。の対処法について解説します。
ORA-28417: パスワードベースのキーストアがオープンではありません。
新規のPDBのキーストアにマスターキーを設定しようとした際にORA-28417のエラーが発生しました。
SQL> administer key management set key identified by password with backup container = all;
administer key management set key identified by password with backup container = all
*
行1でエラーが発生しました。:
ORA-28417: パスワードベースのキーストアがオープンではありません
キーストアの状況を確認すると自動ログインでオープンされていました。
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/product/23ai/dbhomeFree/wallet/tde/ OPEN AUTOLOGIN SINGLE NONE NO 1
FILE OPEN AUTOLOGIN SINGLE UNITED NO 2
FILE OPEN AUTOLOGIN SINGLE UNITED NO 3
FILE OPEN_NO_MASTER_KEY AUTOLOGIN SINGLE UNITED UNDEFINED 4
これを解消するためには自動ログインキーストアを削除、パスワードベースでオープンし直す必要があります。
対処法
自動ログインキーストアを削除します。
OSコマンドでcwallet.ssoを削除することでキーストアを削除できます。
削除後に問題が起きた際に復旧できるようにmvコマンドで退避しておきます。
$ mv cwallet.sso cwallet.sso.bk
SQL*Plusで接続し、キーストアをクローズします。
SQL> administer key management set keystore close 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/product/23ai/dbhomeFree/wallet/tde/ CLOSED UNKNOWN SINGLE NONE UNDEFINED 1
FILE CLOSED UNKNOWN SINGLE UNITED UNDEFINED 2
FILE CLOSED UNKNOWN SINGLE UNITED UNDEFINED 3
FILE CLOSED UNKNOWN SINGLE UNITED UNDEFINED 4
パスワードを使用してオープンします。
SQL> administer key management set keystore open identified by password 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/product/23ai/dbhomeFree/wallet/tde/ OPEN PASSWORD SINGLE NONE NO 1
FILE OPEN PASSWORD SINGLE UNITED NO 2
FILE OPEN PASSWORD SINGLE UNITED NO 3
FILE OPEN_NO_MASTER_KEY PASSWORD SINGLE UNITED UNDEFINED 4
マスターキーを設定します。
SQL> administer key management set key identified by password with backup 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/product/23ai/dbhomeFree/wallet/tde/ OPEN PASSWORD SINGLE NONE NO 1
FILE OPEN PASSWORD SINGLE UNITED NO 2
FILE OPEN PASSWORD SINGLE UNITED NO 3
FILE OPEN PASSWORD SINGLE UNITED NO 4
自動ログインキーストアに戻します。
SQL> administer key management create auto_login keystore from keystore identified by password;
キーストアが変更されました。
DB再起動後に自動ログインになっているか確認します。
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/product/23ai/dbhomeFree/wallet/tde/ OPEN AUTOLOGIN SINGLE NONE NO 1
FILE OPEN AUTOLOGIN SINGLE UNITED NO 2
FILE OPEN AUTOLOGIN SINGLE UNITED NO 3
FILE OPEN AUTOLOGIN SINGLE UNITED NO 4
これにて新規のPDBに対してもマスターキーを設定できました。