この記事では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.bkSQL*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に対してもマスターキーを設定できました。