Oracleで暗号化に関する検証 その4
<Oracleで暗号化に関する検証 その4>
ペンネーム:ウィーット
今回は、Data Pumpを使用して、他ノードにデータを移動してみましょう。
検証環境は以下の通りです。
expdp元
OS : Red Hat Enterprise Linux AS
Oracle : Oracle10gR2
impdp先
OS : Asianux3
Oracle : Oracle10gR2
それでは、import先の「Asianux3」のWalletの作成をしましょう。
作成手順は1回目に行った手順で行います。
同じpasswordで作成してimpdpを実行してみましょう。
———————————————————————-
$ impdp scott/tiger tables=emp_emcrypt dumpfile=emp_encrypt_expdp.dmp --> directory=pump_dir ENCRYPTION_PASSWORD='insight' Import: Release 10.2.0.1.0 - Production on 土曜日, 03 12月, 2005 19:41:38 Copyright (c) 2003, 2005, Oracle. All rights reserved. 接続先: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options ORA-39001: 引数値が無効です ORA-39180: ENCRYPTION_PASSWORDを暗号化できません ORA-28362: マスター鍵が見つかりません
———————————————————————-
やはり、同じLinux(Redhat Linux→Asianux)上でもディストリビューションが
違えば、同じpasswordを用いても鍵は異なって作成されます。
また、同一コンピュータ(同一のOS)で同じpasswordを用いて行っても、鍵は異
なって作成されるので、鍵の保管には注意が必要です。
それでは、expdp元のWalletの鍵をimportのサーバーにFTPでバイナリ転送をし
てから、鍵(Wallet)をOPENしてみましょう。
鍵は、$ORACLE_HOME/network/admin/sqlnet.oraで指定した先に格納します。
———————————————————————-
SQL> alter system set wallet open identified by "xxxxx"; システムが変更されました。
———————————————————————-
OPEN出来ました。どこで作成した鍵(Wallet)であるかは問題ではないようです。
パスワードは、expdpしたノードで使用しているpasswordです。
それでは、Data Pumpを用いて Importしてみましょう。
———————————————————————-
$ impdp scott/tiger tables=emp_encrypt dumpfile=emp_encrypt_expdp.dmp --> directory=pump_dir ENCRYPTION_PASSWORD='insight' Import: Release 10.2.0.1.0 - Production on 日曜日, 3 12月, 2005 20:02:00 Copyright (c) 2003, 2005, Oracle. All rights reserved. 接続先: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options マスター表"SCOTT"."SYS_IMPORT_TABLE_01"は正常にロード/アンロードされました "SCOTT"."SYS_IMPORT_TABLE_01"を起動しています: scott/******** tables=emp_encrypt --> dumpfile=emp_encrypt_expdp.dmp directory=pump_dir --> ENCRYPTION_PASSWORD=******** オブジェクト型TABLE_EXPORT/TABLE/TABLEの処理中です オブジェクト型TABLE_EXPORT/TABLE/TABLE_DATAの処理中です . . "SCOTT"."EMP_EMCRYPT_ORG" 8.515 KB 14行がインポートされました オブジェクト型TABLE_EXPORT/TABLE/INDEX/INDEXの処理中です オブジェクト型TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICSの処理中です オブジェクト型TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICSの処理中です ジョブ"SCOTT"."SYS_IMPORT_TABLE_01"が20:02:28で正常に完了しました
———————————————————————-
確認として、検索してみましょう。
———————————————————————-
SQL> select count(*) from emp_emcrypt_org; COUNT(*) ---------- 14
———————————————————————-
ノード間で同じ鍵(Wallet)を共有するとexpdp/impdpが行えます。
impdpノードに鍵がない場合は、expdp時に復号化してデータを抽出して移動を
行いましょう。もちろん、$ORACLE_HOME/network/admin/sqlnet.oraの設定は
行います。
鍵(Wallet)は、いつOracleに認識されているのでしょうか?DBがOPENされた後
にOSのコマンドで鍵の名前を変更させてみると、暗号化項目は検索出来るでし
ょうか?
DBがOPENしているときに鍵(Wallet)をOS上でrenameして検索を行ってみます。
———————————————————————-
$ mv ewallet.p12 ewallet.p12_bk
———————————————————————-
DBに接続して、検索してみましょう。
———————————————————————-
SQL> select count(*) from emp_encrypt; 14行が選択されました。
———————————————————————-
Oracle上から鍵(Wallet)をOPENされたときに鍵を認識し、OS上で鍵(Wallet)の
名前を変更しても使われ続けることが分かりました。次に鍵(Wallet)を認識す
るのは、次回の鍵(Wallet)のOPEN時になります。
今週のまとめ。
●異なるノードに対しても鍵(Wallet)を共有すれば暗号化されたままデータ移
行(expdp/impdp)が行える。
●Oracleが鍵(Wallet)をOPENしてしまえば、OSのコマンドで鍵の名前が変更さ
れても稼動し続けられる。
もう師走。時の過ぎるのが早い。