プライマリ・コンテンツに移動
Oracle® Database 2日でセキュリティ・ガイド
12c リリース2 (12.1)
B71287-07
目次へ移動
目次
索引へ移動
索引

前
次

4 Oracle Transparent Data Encryptionを使用したデータの暗号化

透過的データ暗号化により、表の列および表領域全体のデータを偽装できます。

トピック:

関連項目:

表領域暗号化の使用方法の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

機密データの暗号化について

暗号化されたデータは、認可された受取人のみが読めるように擬装されたデータです。

暗号化を使用すると、保護されていない可能性のある環境内のデータ(バックアップ・メディアに配置されており、オフサイトのストレージ場所に送信されるデータなど)を保護できます。

データの暗号化には、次のコンポーネントが含まれます:

  • データを暗号化するアルゴリズム。Oracle Databaseは、データを暗号化および復号化する暗号化アルゴリズムを使用します。Oracle Databaseは、業界標準の暗号化アルゴリズムおよびハッシュ・アルゴリズムをいくつかサポートしています。これには、米国標準技術局(National Institute of Standards and Technology: NIST)により承認されているAdvanced Encryption Standard (AES)暗号化アルゴリズムも含まれます。

  • データの暗号化および復号化を行うためのキー。データを暗号化する際、Oracle Databaseは、鍵とプレーン・テキスト・データを暗号化アルゴリズムへの入力として使用します。逆に、データを複合化するときには、アルゴリズムへの入力として複合化キーを使用して、プロセスを逆に実行し、クリア・テキスト・データを取得します。Oracle Databaseは対称キーを使用してこのタスクを実行します(データの暗号化と複合化の両方で同じキーが使用されます)。暗号化キーはデータ・ディクショナリに格納されますが、別のマスター・キーで暗号化されます。

個別の表の列または表領域全体を暗号化できます。これら2つを混同しないように注意してください。たとえば、表列を暗号化してからその表列を含む表領域を暗号化するとします。この二重の暗号化を行うと、パフォーマンスの問題が発生します。また、列の暗号化ではデータ型のサポートに制限があり、一致検索用のBツリー索引のみがサポートされます。現在の暗号化設定を確認するには、表領域に対してはV$ENCRYPTED_TABLESPACESデータ・ディクショナリ・ビュー、暗号化された列に対してはDBA_ENCRYPTED_COLUMNSビューを問い合せることができます。

データを暗号化するタイミング

多くの場合、コンプライアンス規則を順守するためにサイトの機密データを暗号化する必要があります。

たとえば、クレジット・カード番号、社会保障番号、病歴に関する情報などの機密データは、暗号化する必要があります。

データベース管理者からデータへのアクセスを制限するため、これまでユーザーはデータの暗号化を求めていました。しかし問題は暗号化よりも、むしろ アクセス制御にあります。Oracle Database Vaultを使用してデータベース管理者からアプリケーション・データへのアクセスを制御することで、この問題に対処できます。

多くの場合、クレジット・カード番号や社会保障番号などの機密データは、バックアップ・テープやディスク・ドライブの紛失または盗難時にアクセスされないように暗号化します。近年では、ペイメント・カード産業(PCI)データ・セキュリティ標準や医療保険の相互運用性と説明責任に関する法律(HIPAA)などの業界規制によって、それぞれクレジット・カード情報や医療情報の保護に対して暗号化の使用が促されてきています。

透過的データ暗号化の動作

透過的データ暗号化を使用すると、個々の表列もしくは表領域全体を暗号化できます。

ユーザーが暗号化された列にデータを挿入すると、このデータは透過的データ暗号化により自動的に暗号化されます。認可されたユーザーが列を選択すると、データは自動的に復号化されます。

透過的データ暗号化を使用してデータを暗号化するには、次のコンポーネントを作成します。

  • マスター暗号化鍵を格納するキーストア。キーストアは、データベースの外部にあるオペレーティング・システム・ファイルです。データベースはキーストアを使用してマスター暗号化鍵を格納します。キーストアを作成するには、ADMINISTER KEY MANAGEMENT SQL文を使用できます。キーストアはパスワードを暗号化鍵として使用することにより暗号化されます。パスワードはキーストアの作成時に作成します。キーストアのコンテンツ(またはマスター鍵)へのアクセスは、パスワードを知っている人のみに制限されます。キーストアを作成したら、データベースがマスター暗号化鍵にアクセスできるように、パスワードを使用してキーストアを開く必要があります。

    ソフトウェア・キーストアもハードウェア・キーストアも使用できます。ソフトウェア・キーストアは、ディレクトリの場所に作成したファイルに定義されます。ソフトウェア・キーストアは次のいずれかのタイプになります。

    • パスワードベースのキーストア: パスワードベースのキーストアは、作成したパスワードを使用することで保護されます。鍵が取得または使用される前にキーストアを開く必要があります。

    • 自動ログイン・キーストア: 自動ログイン・キーストアはシステム生成のパスワードによって保護されます。セキュリティ管理者によって明示的に開かれる必要はありません。自動ログイン・キーストアは、アクセスすると自動的に開きます。自動ログイン・キーストアは異なるシステム間で使用できます。使用する際、明示的に開く必要のあるキーストアで提供される特別なセキュリティが不要な環境の場合、自動ログイン・キーストアを使用できます。

    • 自動ログイン・ローカル・キーストア: 自動ログイン・ローカル・キーストアは、これを作成するシステムに対してローカルである自動ログイン・キーストアです。自動ログイン・ローカル・キーストアは、作成されたコンピュータ以外では開けません。

    ハードウェア・キーストアは、暗号化鍵をセキュアに格納するよう設計された物理デバイスであるハードウェア・セキュリティ・モジュールと組み合せて使用します。このガイドでは、ソフトウェア・キーストアの構成方法についてのみ説明します。ハードウェア・キーストアの詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

  • キーストアの場所。 キーストアの場所はsqlnet.oraファイルに指定する必要があります。

ユーザーがデータを入力すると、Oracle Databaseにより次の手順が実行されます。

  1. キーストアからマスター鍵を取得します。

  2. マスター・キーを使用して暗号化キーを復号化します。

  3. 暗号化キーを使用して、ユーザーが入力したデータを暗号化します。

  4. 暗号化した形式でデータをデータベースに格納します。

ユーザーがデータを選択した場合も、同じようなプロセスが実行されます。Oracle Databaseによりデータが復号化され、プレーン・テキスト形式で表示されます。

透過的データ暗号化には、次の利点があります。

  • セキュリティ管理者の場合、ストレージ・メディアまたはデータ・ファイルが盗み出された場合または失われた場合にも機密データを保護できます。

  • 透過的データ暗号化を実装すると、セキュリティ関連のコンプライアンス要件を順守できます。

  • 表から取得されたデータは、データベース・ユーザーに対して透過的に復号化されます。データを復号化するために、トリガーまたはビューを作成する必要がありません。

  • データベース・ユーザーは、アクセスするデータが暗号化された形式で格納されていることを認識する必要がありません。データはデータベース・ユーザーに対して透過的に復号化され、ユーザーがアクションを行う必要はありません。

  • 暗号化されたデータを処理するためにアプリケーションを変更する必要がありません。データの暗号化/復号化は、データベースにより管理されます。

透過的データ暗号化がパフォーマンスに与える影響は最小限のものです。透過的データ暗号化の列暗号化において、パフォーマンスに影響が及ぶのは、暗号化された列からデータを取得するときと、暗号化された列にデータを挿入するときだけです。暗号化されていない列に対する操作では、たとえ同じ表に暗号化された列が含まれていても、パフォーマンスに影響が及ぶことはありません。ただし、暗号化されたデータには、プレーン・テキスト・データよりも多くの記憶域が必要なことに注意してください。平均的に、1つの列を暗号化すると、1行につき必要となる記憶域が32バイトから48バイトまで増えます。それでも、透過的表領域暗号化では暗号化と復号化がI/Oブロック層で実行されるため、より優れたパフォーマンスが得られます。復号化されたブロックはOracle Databaseのメモリーにキャッシュされ、それによりパフォーマンスが最適化されます。

関連項目:

透過的データ暗号化の使用方法の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

透過的データ暗号化を使用するためのデータの構成

透過的データ暗号化の使用を開始するには、キーストアを作成し、マスター鍵を設定する必要があります。

キーストアは、透過的データ暗号化専用の別個のキーストアである必要があります。このキーストアは、透過的データ暗号化によって暗号化されるすべてのデータに使用されます

トピック:

関連項目:

表領域暗号化の使用方法の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

手順1: キーストアの場所の構成

パスワードベースのソフトウェア・キーストアを作成する場合は、sqlnet.oraファイルにキーストアのディレクトリの場所を指定する必要があります。この手順は1回のみ実行します。

キーストアの場所を構成するには、次のようにします。

  1. $ORACLE_HOMEディレクトリに、キーストアを格納するディレクトリを作成します。

    たとえば、Microsoft WindowsのC:\oracle\product\12.1.0\db_1ディレクトリにORA_KEYSTORESという名前のディレクトリを作成します。

  2. sqlnet.oraファイルのバックアップ・コピーを作成します。このファイルのデフォルトの場所は、$ORACLE_HOME/network/adminディレクトリです。

  3. sqlnet.oraファイルの最後に、次のようなコードを追加します。ORA_KEYSTORESは、キーストアを格納するディレクトリの名前です。

    ENCRYPTION_WALLET_LOCATION=
     (SOURCE=
      (METHOD=file)
       (METHOD_DATA=
        (DIRECTORY=C:\oracle\product\12.1.0\db_1\ORA_KEYSTORES)))
    
  4. sqlnet.oraファイルを保存して閉じます。

手順2: COMPATIBLE初期化パラメータ設定の確認

表領域の暗号化機能をすべて構成する場合、データベースのCOMPATIBLE初期化パラメータを11.2.0.0以上に設定する必要があります。

そうではない場合、11.0.0.0以上であることを確認します。このパラメータを設定すると、変更できないことに注意してください。

COMPATIBLE初期化パラメータを設定するには、次のようにします。

  1. データベース・インスタンスにログインします。

    次に例を示します。

    sqlplus sec_admin
    Enter password: password
    Connected.
    
  2. COMPATIBLEパラメータの現在の設定を確認します。

    次に例を示します。

    SHOW PARAMETER COMPATIBLE
     
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- -------------
    compatible                           string      11.0.0.0
    
  3. COMPATIBLEパラメータを変更する必要がある場合、この手順の残りのステップを実行します。

    値は、11.2.0.0以上である必要があります。

  4. データベース・インスタンスの初期化パラメータ・ファイルを特定します。

    • UNIXシステム: このファイルは、ORACLE_HOME/dbsディレクトリにあり、initORACLE_SID.ora (initmydb.oraなど)という名前です。

    • Windowsシステム: このファイルは、ORACLE_HOME\databaseディレクトリにあり、initORACLE_SID.ora (initmydb.oraなど)という名前です。

  5. 正しいCOMPATIBLE設定を使用して初期化パラメータ・ファイルを編集します。

    次に例を示します。

    COMPATIBLE = 12.0.0.0
    
  6. SQL*Plusで、SYSDBA管理権限を付与されたユーザーとしてログインします。

    sqlplus sys as sysdba
    Enter password: password
    
  7. Oracle Databaseインスタンスを再起動します。

    次に例を示します。

    SHUTDOWN IMMEDIATE
    STARTUP
    
  8. SQL*Plusからログアウトします。

手順3: パスワードベースのソフトウェア・キーストアの作成

キーストアを作成するには、ADMINISTER KEY MANAGEMENT SQL文を使用します。

デフォルトでは、Oracleキーストアにはそれまで使用されたマスター鍵の履歴が格納されます。これにより、マスター鍵を変更したり、以前のマスター鍵で暗号化されたデータを復号化することができます。キーストア・パスワード(大/小文字の区別あり)はデータベース管理者には知らされないため、職務分掌を実現できます。つまり、データベース管理者がデータベースを再起動してもキーストアは閉じられたままで、セキュリティ管理者が手動でキーストア開くまでは、データベースのデータを暗号化することも復号化することもできません。

キーストアを作成するには、次のようにします。

  1. SQL*Plusで、SYSKM管理権限を付与されたユーザーとして接続します。

    次に例を示します。

    CONNECT psmith / AS SYSKM
    Enter password: password
    
  2. 次のADMINISTER KEY MANAGEMENT SQL文を実行します。

    ADMINISTER KEY MANAGEMENT CREATE KEYSTORE 'keystore_location' IDENTIFIED BY software_keystore_password;
    

    次のように指定します。

    • keystore_locationは、sqlnet.oraファイルに定義したキーストアの場所のパス(oracle\product\12.1.0\db_1\ORA_KEYSTORESなど)です。keystore_location設定は一重引用符で囲みます。この場所を確認するには、V$ENCRYPTION_WALLETビューのWRL_PARAMETER列を問い合せます。

    • software_keystore_passwordは、セキュリティ管理者が作成する新規パスワードです。

    たとえば、c:\oracle\product\12.1.0\db_1\ORA_KEYSTORESにキーストアを作成する場合、次のようになります。

    ADMINISTER KEY MANAGEMENT CREATE KEYSTORE 'c:\oracle\product\12.1.0\db_1\ORA_KEYSTORES' IDENTIFIED BY password;
    
    keystore altered.
    

    この文を実行すると、キーストアを含むewallet.p12ファイルがキーストアの場所に生成されます。

手順4: キーストアを開く(または閉じる)

キーストアは、手動で開閉できます。自動ログイン・キーストアは、それらにアクセスすると自動的に開きます。

トピック:

キーストアを開く

透過的データ暗号化を使用するには、パスワードベースのソフトウェア・キーストアを作成したらただちに手動で開く必要があります。

自動ログイン・キーストアまたはハードウェア・キーストアは自動的に開くので、これらを開く必要はありません。キーストアが開いているか、閉じているかのステータスは、V$ENCRYPTION_WALLETビューのSTATUS列を問い合せて、確認できます。

キーストアを開く手順:

  1. SYSKMシステム権限を付与されたユーザーとしてSQL*Plusにログインしていることを確認します。

  2. 次のADMINISTER KEY MANAGEMENT SQL文を入力します。

    ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY software_keystore_password;
    
    keystore altered.
    

    software_keystore_passwordを、「手順3: パスワードベースのソフトウェア・キーストアの作成」で作成したパスワードに置き換えます。

キーストアを閉じる

マスター鍵へのアクセスを無効にし、暗号化された列へのアクセスを防止する場合は、キーストアを閉じることができます。

ほとんどの場合、キーストアは、閉じる理由がないかぎり開いたままにします。透過的データ暗号化が機能するには、キーストアが開かれている必要があります。キーストアを再度開くには、ADMINISTER KEY MANAGEMENT文を使用します。

キーストアを閉じる手順:

  1. SYSKMシステム権限を付与されたユーザーとしてSQL*Plusにログインしていることを確認します。

  2. 次のSQL文を入力します。

    ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY software_keystore_password;

手順5: マスター暗号化鍵の作成

マスター暗号化鍵はキーストアに格納されます。表の鍵と表領域の暗号化鍵を保護します。

デフォルトでは、透過的データ暗号化(TDE)によって生成されるランダム鍵がマスター暗号化鍵として使用されます。

マスター暗号化鍵を作成するには、次のようにします。

  1. SYSKMシステム権限を付与されたユーザーとしてSQL*Plusにログインしていることを確認します。

  2. 次のADMINISTER KEY MANAGEMENT SQL文を実行します。

    ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY software_keystore_password [WITH BACKUP [USING 'backup_identifier']];
    
    keystore altered.
    

    次のように指定します。

    • software_keystore_passwordは、「手順3: パスワードベースのソフトウェア・キーストアの作成」で作成したパスワードです。

    • WITH BACKUPを使用すると、キーストアのバックアップが作成されます。パスワードベースのキーストアの場合、このオプションを使用する必要があります。自動ログイン・キーストアや自動ログイン・ローカル・キーストアの場合、使用する必要はありません。オプションでUSING句を使用し、バックアップの簡単な説明を追加できます。この説明は二重引用符で囲みます。この識別子は名前付きキーストア・ファイルに付加されます(ewallet_timestamp_emp_key_backup.p12など)。

    次に例を示します。

    ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY IDENTIFIED BY software_keystore_password WITH BACKUP USING 'password key backup';

手順6: データの暗号化

sqlnet.oraファイルでキーストアのディレクトリの場所を作成し、キーストアとマスター暗号化鍵を作成したら、個々の表列もしくは表領域全体のいずれかを暗号化できます。

トピック:

表の個々の列の暗号化

暗号化する列は、提供された一連のガイドラインに従って選択してください。

暗号化する列かどうかを識別するときに行う決定は、カリフォルニア州上院法案1386などの政府のセキュリティ規則、またはクレジット・カード業界(PCI)のデータ・セキュリティ基準などの業界の基準によって規定されます。クレジット・カード番号、社会保障番号、その他の個人情報(PII)はこのカテゴリに分類されます。独自の内部のセキュリティ・ポリシー(企業秘密、研究結果、従業員の給与、ボーナスなど)で、暗号化の要件を決定します。データを暗号化する場合と暗号化しない場合のガイドラインは、「データを暗号化するタイミング」を参照してください。

暗号化する列を選択するには、次のガイドラインに従います。

  • 暗号化する列のデータ型をチェックします。透過的データ暗号化では、次のデータ型がサポートされす。
    • BINARY_FLOAT

    • BINARY_DOUBLE

    • CHAR

    • DATE

    • BLOBCLOBなどのラージ・オブジェクト型(LOB)脚注 1

    • NCHAR

    • NUMBER

    • NVARCHAR2

    • RAW

    • TIMESTAMP

    • VARCHAR2

  • 選択した列が外部キーの一部でないことを確認します。透過的データ暗号化を使用すると、各表に固有の暗号化鍵が作成されます。この暗号化鍵はデータベースのデータ・ディクショナリに格納され、外部のマスター鍵によって暗号化されます。暗号化された列は外部キーとして使用できません。

表の列を暗号化するには次のようにします。

  1. キーストアを作成して開き、マスター暗号化鍵を作成していることを確認します。

    必要に応じて、次の項を参照してください。

  2. Enterprise Managerでデータベース・ホームページにアクセスします。

    詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。

  3. 「スキーマ」メニューから、「データベース・オブジェクト」「表」の順に選択します。

    データベース・ログイン・ページが表示されたら、SYSDBA管理権限を持つSYSとしてログインします。

  4. 表ページで、次のいずれかを実行します。

    • 新しい表を作成するには、「作成」をクリックしてから表示されたページの質問に回答し、表の作成を開始します。

    • 既存の表を変更するには、スキーマ名を「スキーマ」フィールドに、表名を「オブジェクト名」フィールドに入力して表名を検索します。(パーセント記号(%)ワイルドカード文字を使用して表のグループを検索できます。たとえば、Oで始まるすべての表を検索するには、O%を使用します。)表が「表」ページに示されている場合は、その表を選択して「編集」をクリックします。

    表の作成または表の編集ページで、暗号化オプションを設定できます。

    たとえば、OE.ORDERS表の列を暗号化する場合、「表の編集」ページは次のように表示されます。

  5. 「表の作成」(または「表の編集」)ページで、次の手順を実行します。

    1. 暗号化する列を選択します。

      外部キー制約の一部である列(主キー列または一意キー列)は選択しないでください。これらの列は暗号化できません。これらの列には、名前の左側に鍵またはチェック・マーク・アイコンがあります。

    2. 「暗号化オプション」をクリックして、「表」ページの暗号化オプションを表示します。

    3. 「暗号化アルゴリズム」リストから次のオプションを選択します。

      • AES192: キーの長さを192ビットに設定します。AESは「Advanced Encryption Standard」の略です。

      • 3DES168: キーの長さを168ビットに設定します。3DESは「Triple Data Encryption Standard」の略です。

      • AES128: キーの長さを128ビットに設定します。このオプションはデフォルトです。

      • AES256: キーの長さを256ビットに設定します。

    4. 「キーの生成」で、「ランダムにキーを生成」または「キーの指定」のどちらかを選択します。「キーの指定」を選択した場合は、「キーの入力」および「キーの確認」フィールドにシード値の文字を入力します。

      「ランダムにキーを生成」設定を選択すると、ソルトが有効になります。ソルトとは、暗号化されたデータのセキュリティを強化する方法の1つで、暗号化される前のデータに追加されるランダムな文字列です。これにより、同じテキストであっても、暗号化されたときには異なって表示されます。結果として、暗号化されたテキストのパターン一致を使用する攻撃者は、盗み出したデータを使用できません。

    5. 「続行」をクリックして「表の作成」(または「表の編集」)ページに戻ります。

    6. 「暗号化」の下のボックスを選択して、列の暗号化を有効にします。

  6. 「適用」をクリックし、次に「戻る」をクリックします。

    「表」ページが表示されます。

表の更新時も、読取りアクセスは可能です。後で、列内の既存のデータおよび将来格納されるデータは、データベース・ファイルに書き込まれるときに暗号化され、認可されたユーザーが選択したときに復号化されます。データ操作言語(DML)文が必要な場合は、オンラインで再定義できます。

表領域の暗号化

新規表領域を作成中に新規表領域を暗号化できますが、既存の表領域を暗号化することはできません。

回避策として、CREATE TABLE AS SELECTALTER TABLE MOVEを使用するか、またはOracle Data Pumpインポートを使用して既存の表領域からデータを取得し、暗号化されている表領域に格納することができます。表領域の作成の詳細は、Oracle Database 2日でデータベース管理者を参照してください。

表領域を暗号化するには、次のようにします。

  1. この項の前述の手順で説明されているように、キーストアを作成して開いていることを確認します。

  2. Enterprise Managerでデータベース・ホームページにアクセスします。

    詳細は、Oracle Database 2日でデータベース管理者を参照してください。

  3. 「管理」メニューから、「記憶域」「表領域」の順に選択します。

    データベース・ログイン・ページが表示されたら、SYSなどの管理ユーザーとしてログインします。ユーザーSYSは、SYSDBAロールが選択されている状態でログインする必要があります。

    「表領域」ページが表示されます。

  4. 「作成」をクリックしてから表示されたページの質問に回答し、表領域と必要なデータ・ファイルの作成を開始します。

  5. 「表領域の作成」ページで、次のステップを実行します。

    1. 「タイプ」の「永続」リストで、「暗号化」ボックスを選択します。

    2. 「データファイル」で、「追加」を選択してデータ・ファイルを追加します。(LinuxとWindowsシステムのみ)

    3. 「暗号化」オプションを選択して、「暗号化オプション」ページを表示します。

    4. 「暗号化アルゴリズム」リストから次のオプションを選択します。

      • AES192: キーの長さを192ビットに設定します。AESは「Advanced Encryption Standard」の略です。

      • 3DES168: キーの長さを168ビットに設定します。3DESは「Triple Data Encryption Standard」の略です。

      • AES128: キーの長さを128ビットに設定します。このオプションはデフォルトです。

      • AES256: キーの長さを256ビットに設定します。

      暗号化アルゴリズムの詳細は、「ネットワーク暗号化の設定」の手順5の「使用可能なメソッド」を参照してください。

    5. 「続行」をクリックします。

  6. 表領域の作成ページで、「OK」をクリックします。

    既存の表領域のリストに新規表領域が表示されます。既存の表領域は暗号化できないことに注意してください。

関連項目:

既存の暗号化データのチェック

すでに暗号化されているデータについて、データベースに問い合せることができます。

暗号化された個々の列、暗号化された列を含む現行のデータベース・インスタンスのすべての表、暗号化されているすべての表領域をチェックできます。

トピック:

作成されたキーストアのタイプの確認

作成されたキーストアのタイプを確認するには、V$ENCRYPTION_KEYSビューに問い合せます。

作成されたキーストアのタイプを確認するには、次のようにします。

  • SQL*Plusで、次のようにV$ENCRYPTION_KEYSビューに問い合せます。

    SELECT KEYSTORE_TYPE FROM V$ENCRYPTION_KEYS;
    

    キーストアの場所が次のように表示されます。

    KEYSTORE_TYPE
    -----------------------------
    SOFTWARE KEYSTORE

キーストアの場所の確認

キーストアの場所は、V$ENCRYPTION_WALLETビューに問い合せることで確認できます。

キーストアの場所を確認するには、次のようにします。

  • SQL*Plusで、次のようにV$ENCRYPTION_WALLETビューに問い合せます。

    SELECT WRL_PARAMETER FROM V$ENCRYPTION_WALLET;
    

    キーストアの場所が次のように表示されます。

    WRL_PARAMETER
    -----------------------------
    C:\oracle\product\12.1.0\db_1

キーストアが開いているか閉じているかの確認

キーストアが開いているか、閉じているかは、V$ENCRYPTION_WALLETビューに問い合せると、確認できます。

キーストアが開いているか閉じているかを確認するには、次のようにします。

  • SQL*Plusで、次のようにV$ENCRYPTION_WALLETビューに問い合せます。

    SELECT STATUS FROM V$ENCRYPTION_WALLET;
    

    キーストアのステータスが次のように表示されます。

    STATUS  
    -------
    OPEN

個々の表の暗号化されている列のチェック

SQL*PlusでDESC(DESCRIBE)文を使用して、データベース表内の暗号化されている列をチェックできます。

個々の表の暗号化されている列をチェックするには、次のようにします。

  • SQL*Plusで、次の構文を使用してDESC文を実行します。

    DESC tablename;
    

    次に例を示します。

    DESC OE.ORDER_ITEMS;
    

    表スキーマの説明が表示されます。次の出力では、QUANTITY列が暗号化されることを示しています。

    Name                                      Null?     Type
    ----------------------------------------  --------  --------------------------
    ORDER_ID                                  NOT NULL  NUMBER(12)
    LINE_ITEM_ID                              NOT NULL  NUMBER(3)
    PRODUCT_ID                                NOT NULL  NUMBER(6)
    UNIT_PRICE                                          NUMBER(8,2)
    QUANTITY                                            NUMBER(8) ENCRYPT

現行のデータベース・インスタンスで暗号化されているすべての表列のチェック

すべての暗号化された表列をチェックするには、DBA_ENCRYPTED_COLUMNSビューの問合せができます。

現行のデータベース・インスタンスで暗号化されているすべての表列をチェックするには、次のようにします。

  • SQL*Plusで、DBA_ENCRYPTED_COLUMNSビューから選択します。

    次に例を示します。

    SELECT * FROM DBA_ENCRYPTED_COLUMNS;
    

    このSELECT文によって、Oracle Transparent Data Encryptionを使用して暗号化された列を含む、データベースのすべての表および列がリストされます。次に例を示します。

    OWNER    TABLE_NAME    COLUMN_NAME    ENCRYPTION_ALG     SALT   INTEGRITY_ALG
    -------  ----------    -----------    ----------------   ----   -------------
    OE       CUSTOMERS     INCOME_LEVEL   AES 128 bits key   YES    SHA-1
    OE       UNIT_PRICE    ORADER_ITEMS   AES 128 bits key   YES    SHA-1
    HR       EMPLOYEES     SALARY         AES 192 bits key   YES    SHA-1

関連項目:

DBA_ENCRYPTED_COLUMNSビューの詳細は、『Oracle Databaseリファレンス』を参照してください。

現行のデータベース・インスタンスで暗号化されている表領域のチェックのためのデータ・ディクショナリ・ビュー

Oracle Databaseでは、暗号化されている表領域をチェックするために問い合せできるデータ・ディクショナリ・ビューのセットが提供されています。

表4-1に、暗号化されている表領域のチェックに使用できるデータ・ディクショナリ・ビューを示します。

表4-1 暗号化されている表領域のデータ・ディクショナリ・ビュー

データ・ディクショナリ・ビュー 説明

DBA_TABLESPACES

データベース内のすべての表領域が示されます。たとえば、表領域が暗号化されたかどうかを確認し、次のように入力します。

SELECT TABLESPACE_NAME, ENCRYPTED FROM DBA_TABLESPACES;

TABLESPACE_NAME              ENC
---------------------------- ----
SYSTEM                       NO
SYSAUX                       NO
UNCOTBS1                     NO
TEMP                         NO
USERS                        NO
EXAMPLE                      NO
SECURESPACE                  YES

USER_TABLESPACES

現行ユーザーがアクセス可能な表領域について説明します。DBA_TABLESPACESと同じ列があります(PLUGGED_IN列を除く)。

V$ENCRYPTED_TABLESPACES

暗号化されている表領域に関する情報が示されます。次に例を示します。

SELECT * FROM V$ENCRYPTED_TABLESPACES;
        TS#  ENCRYPTIONALG  ENCRYPTEDTS
-----------  -------------  -----------
         6   AES128         YES

このリストには、表領域番号、暗号化アルゴリズム、暗号化が有効か無効かなどが示されます。

表領域の名前を検出する場合は、次の結合操作を使用します。

SELECT NAME, ENCRYPTIONALG ENCRYPTEDTS
FROM V$ENCRYPTED_TABLESPACES, V$TABLESPACE
WHERE V$ENCRYPTED_TABLESPACES.TS# = V$TABLESPACE.TS#;

関連項目:

データ・ディクショナリ・ビューの詳細は、『Oracle Databaseリファレンス』を参照してください。



脚注の凡例

脚注1:

外部LOB (BFILE)は、暗号化できません。