インストールおよびアップグレード > 高度な展開の検討事項 > 高度なデータベース設定 > Transparent Data Encryption (TDE) を使用した Oracle データベース暗号化 > 既存の Windchill データベースでの Oracle TDE 表領域暗号化の設定
  
既存の Windchill データベースでの Oracle TDE 表領域暗号化の設定
次の手順は、既存の Windchill データベースに Oracle TDE 表領域暗号化を設定する方法を説明しています。手順には、データ変換 (インポート/エクスポート) と暗号化されていないデータのクリーンアップの完了が含まれます。
TDE 表領域用データベースサーバーの設定
1. datadump を使用して次のコマンドを実行し、既存のデータベース全体をエクスポートします。DMPDIRWC10.dmp、および exp_WC10.log の値を、使用する環境に適した値に置き換えます。
expdp system@wind directory=DMPDIR dumpfile=WC10.dmp logfile=exp_WC10.log Full=y
処理を進める前に、エクスポートされた生成済みダンプファイルとログファイル (前のコマンドにおける WC10.dmp および exp_WC10.log) を DMPDIR からコピーして、別の安全な場所に保存します。
2. 現在のデータベースをドロップして、再度作成します。
3. 暗号化するデータベースを用意します。
暗号化された表領域の作成を始める前に、データベースサーバーに暗号化キーを保管するウォレットを作成します。
ウォレットとは暗号化されたコンテナであり、パスワード、TED マスターキー、PKI プライベートキー、証明書、および SSL による信頼済み証明書などの認証情報と署名付き証明書の保存に使用します。TDE では、ウォレットはデータベースサーバーで TDE マスターキーを保護するために使用します。データは REDO ログ、UNDO 表領域、および TEMP 表領域で暗号化されるので、TDE 暗号化マスターキーはデータベースを開く前に使用可能にしておく必要があります。
* 
暗号化した表領域にはデフォルトのデータベースウォレットを共有できますが、Oracle では sqlnet.ora ファイルで ENCRYPTION_WALLET_LOCATION パラメータを指定することで、透過的データ暗号化機能に別のウォレットを使用することを推奨しています。sqlnet.ora ファイルで ENCRYPTION_WALLET_LOCATION パラメータを指定せずに、ウォレットのデフォルトの場所を使用する場合には、既知のセキュリティリスクがあります。詳細については、http://www.oracle.com/technetwork/database/security/twp-transparent-data-encryption-bes-130696.pdf を参照してください。
a. $ORACLE_ホーム/network/admin/sqlnet.ora ファイルに ENCRYPTION_WALLET_LOCATION パラメータを次のように設定して、ウォレットのディレクトリを指定します。
ENCRYPTION_WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /u01/app/oracle/wallets/wind/)))
DIRECTORY の値は使用する環境に適した値に置き換えてください。
b. SQL*Plus を使用して対象のデータベースにデータベース管理者ユーザーとしてログインし、次のコマンドを実行して、ウォレットの初期化と暗号化マスターキーの追加を行います。各コマンドを個別に実行します。<パスワード> は適切なパスワードに置き換えてください。
ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY “<パスワード>”;
ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY “<パスワード>”;
Configure Wallet auto open after database restart:
orapki wallet create -wallet <wallet_home> -auto_login
4. SQL*Plus を使用して対象のデータベースにデータベース管理者ユーザーとしてログインし、次のステートメントを実行してデフォルトの表領域を SYSAUX に変更します。
ALTER DATABASE DEFAULT TABLESPACE "SYSAUX";
5. SQL*Plus を使用して、元の表領域 (USERSBLOBSINDXWCAUDIT) をドロップします。
DROP TABLESPACE USERS INCLUDING CONTENTS AND DATAFILES;
DROP TABLESPACE BLOBS INCLUDING CONTENTS AND DATAFILES;
DROP TABLESPACE INDX INCLUDING CONTENTS AND DATAFILES;
DROP TABLESPACE WCAUDIT INCLUDING CONTENTS AND DATAFILES;
6. SQL*Plus を使用して、元の表領域と同じ名前で新しい暗号化表領域を作成します。下記のステートメント例で、DATAFILE の値を使用する環境に適した値に置き換えてください。
CREATE TABLESPACE "USERS"
DATAFILE '/u01/app/oracle/oradata/wind/users01.dbf'
SIZE 100M AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED LOGGING
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
DEFAULT STORAGE ( ENCRYPT ) ENCRYPTION USING 'AES256';
CREATE TABLESPACE "BLOBS"
DATAFILE '/u01/app/oracle/oradata/wind/blobs01.dbf'
SIZE 100M AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED LOGGING
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
DEFAULT STORAGE ( ENCRYPT ) ENCRYPTION USING 'AES256';
CREATE TABLESPACE "INDX"
DATAFILE '/u01/app/oracle/oradata/wind/indx01.dbf'
SIZE 100M AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED LOGGING
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
DEFAULT STORAGE ( ENCRYPT ) ENCRYPTION USING 'AES256';
CREATE TABLESPACE "WCAUDIT"
DATAFILE '/u01/app/oracle/oradata/wind/wcaudit01.dbf'
SIZE 100M AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED LOGGING
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
DEFAULT STORAGE ( ENCRYPT ) ENCRYPTION USING 'AES256';
7. デフォルトの表領域を再設定して USERS:
ALTER DATABASE DEFAULT TABLESPACE "USERS";
とします。
8. SQL*Plus を使用して次のクエリーを実行し、表領域が暗号化表領域として作成されたことを確認します。ENCRYPTED コラムには YES の値が表示されていなければなりません。
SELECT TABLESPACE_NAME , ENCRYPTED FROM DBA_TABLESPACES;
9. Windchill サーバーから SQL*Plus を使用して管理者ユーザーとしてデータベースサーバーにログインし、<Windchill>/db/sql/create_user.sql スクリプトを使用して Windchill データベースユーザーを作成します。ここで <Windchill>Windchill のインストールディレクトリです。
10. Windchill サーバーで SQL*Plus を使用してデータベースサーバーに (前のステップで作成した) Windchill データベースユーザーとしてログインし、次のスクリプトを実行します。
<Windchill>/db/sql/wnc/Foundation/nonmodeled/procedures/WTReversePK.sql
<Windchill>/db/sql/wnc/Foundation/nonmodeled/procedures/WTPrefixPK.sql
<Windchill>/db/sql/wnc/Foundation/nonmodeled/procedures/WipPk.sql
11. datadump を使用して以下のようなコマンドを実行し、ステップ 1 でエクスポートした Windchill スキーマをインポートします。
12. impdp system@wind directory=DMPDIR dumpfile= WC10.dmp logfile=imp_WC10.log schemas=WC10
コマンド例のパラメータ値 (DMPDIRWC10.dmpimp_WC10.logWC10 など) は、使用する環境に適した値に置き換えてください。
13. インポートの完了後、SQL*Plus を使用して次のようなコマンドで Windchill スキーマにあるすべての無効なオブジェクトをコンパイルします。
EXEC DBMS_UTILITY.compile_schema(schema => 'WC10');
コマンド例のパラメータ値 WC10 は使用する環境に適した値に置き換えてください。
TDE 表領域用に設定するデータベースの Windchill の設定
1. Windchill シェルを開きます。
2. Windchill シェルで、次のコマンドを実行して必要な設定プロパティを設定し、適用します。
xconfmanager -s wt.pom.dbConnectionPropertiesNameList="oracle.net.
encryption_client,oracle.net.encryption_types_client,oracle.net.
crypto_checksum_client,oracle.net.crypto_checksum_types_client"
-t "db/db.properties"
xconfmanager -s wt.pom.dbConnectionPropertiesValueList="ACCEPTED,
( AES256 ), ACCEPTED,( MD5 )" -t "db/db.properties"
xconfmanager -p
* 
oracle.net.encryption_client および oracle.net.crypto_checksum_client は、以下のいずれかの値を使用して設定できます。
REJECTED
ACCEPTED
REQUESTED
REQUIRED
デフォルト値は ACCEPTED です。詳細については、Oracle Database Advanced Security Administrator's Guide を参照してください。
3. Windchill を起動します。