透過的データ暗号化により、表の列および表領域全体のデータを偽装できます。
暗号化されたデータは、認可された受取人のみが読めるように擬装されたデータです。
暗号化(透過的データ暗号化(TDE))を使用すると、保護されていない可能性のある環境内のデータ(バックアップ・メディアに配置されていて、オフサイトのストレージ場所に送信されるデータなど)を保護できます。
データの暗号化には、次のコンポーネントが含まれます:
データを暗号化するアルゴリズム。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
ビューを問い合せることができます。
関連項目:
TDEの詳細は、『Oracle Database Advanced Securityガイド』を参照してください多くの場合、コンプライアンス規則を順守するためにサイトの機密データを暗号化する必要があります。
たとえば、クレジット・カード番号、社会保障番号、病歴に関する情報などの機密データは、暗号化する必要があります。
データベース管理者からデータへのアクセスを制限するため、これまでユーザーはデータの暗号化を求めていました。しかし問題は暗号化よりも、むしろ アクセス制御にあります。Oracle Database Vaultを使用してデータベース管理者からアプリケーション・データへのアクセスを制御することで、この問題に対処できます。
多くの場合、クレジット・カード番号や社会保障番号などの機密データは、バックアップ・テープやディスク・ドライブの紛失または盗難時にアクセスされないように暗号化します。近年では、ペイメント・カード産業(PCI)データ・セキュリティ標準や医療保険の相互運用性と説明責任に関する法律(HIPAA)などの業界規制によって、それぞれクレジット・カード情報や医療情報の保護に対して暗号化の使用が促されてきています。
透過的データ暗号化を使用すると、個々の表列もしくは表領域全体を暗号化できます。
ユーザーが暗号化された列にデータを挿入すると、このデータは透過的データ暗号化により自動的に暗号化されます。認可されたユーザーが列を選択すると、データは自動的に復号化されます。
透過的データ暗号化を使用してデータを暗号化するには、次のコンポーネントを作成します。
マスター暗号化鍵を格納するキーストア。キーストアは、データベースの外部にあるオペレーティング・システム・ファイルです。データベースはキーストアを使用してマスター暗号化鍵を格納します。キーストアを作成するには、ADMINISTER KEY MANAGEMENT
SQL文を使用できます。キーストアはパスワードを暗号化鍵として使用することにより暗号化されます。パスワードはキーストアの作成時に作成します。キーストアのコンテンツ(またはマスター鍵)へのアクセスは、パスワードを知っている人のみに制限されます。キーストアを作成したら、データベースがマスター暗号化鍵にアクセスできるように、パスワードを使用してキーストアを開く必要があります。
ソフトウェア・キーストアもハードウェア・キーストアも使用できます。ソフトウェア・キーストアは、ディレクトリの場所に作成したファイルに定義されます。ソフトウェア・キーストアは次のいずれかのタイプになります。
パスワードベースのキーストア: パスワードベースのキーストアは、作成したパスワードを使用することで保護されます。鍵が取得または使用される前にキーストアを開く必要があります。
自動ログイン・キーストア: 自動ログイン・キーストアはシステム生成のパスワードによって保護されます。セキュリティ管理者によって明示的に開かれる必要はありません。自動ログイン・キーストアは、アクセスすると自動的に開きます。自動ログイン・キーストアは異なるシステム間で使用できます。使用する際、明示的に開く必要のあるキーストアで提供される特別なセキュリティが不要な環境の場合、自動ログイン・キーストアを使用できます。
自動ログイン・ローカル・キーストア: 自動ログイン・ローカル・キーストアは、これを作成するシステムに対してローカルである自動ログイン・キーストアです。自動ログイン・ローカル・キーストアは、作成されたコンピュータ以外では開けません。
ハードウェア・キーストアは、暗号化鍵をセキュアに格納するよう設計された物理デバイスであるハードウェア・セキュリティ・モジュールと組み合せて使用します。このガイドでは、ソフトウェア・キーストアの構成方法についてのみ説明します。ハードウェア・キーストアの詳細は、『Oracle Database Advanced Securityガイド』を参照してください。
キーストアの場所。 キーストアの場所はsqlnet.ora
ファイルに指定する必要があります。
ユーザーがデータを入力すると、Oracle Databaseにより次の手順が実行されます。
キーストアからマスター鍵を取得します。
マスター・キーを使用して暗号化キーを復号化します。
暗号化キーを使用して、ユーザーが入力したデータを暗号化します。
暗号化した形式でデータをデータベースに格納します。
ユーザーがデータを選択した場合も、同じようなプロセスが実行されます。Oracle Databaseによりデータが復号化され、プレーン・テキスト形式で表示されます。
透過的データ暗号化には、次の利点があります。
セキュリティ管理者の場合、ストレージ・メディアまたはデータ・ファイルが盗み出された場合または失われた場合にも機密データを保護できます。
透過的データ暗号化を実装すると、セキュリティ関連のコンプライアンス要件を順守できます。
表から取得されたデータは、データベース・ユーザーに対して透過的に復号化されます。データを復号化するために、トリガーまたはビューを作成する必要がありません。
データベース・ユーザーは、アクセスするデータが暗号化された形式で格納されていることを認識する必要がありません。データはデータベース・ユーザーに対して透過的に復号化され、ユーザーがアクションを行う必要はありません。
暗号化されたデータを処理するためにアプリケーションを変更する必要がありません。データの暗号化/復号化は、データベースにより管理されます。
透過的データ暗号化がパフォーマンスに与える影響は最小限のものです。透過的データ暗号化の列暗号化において、パフォーマンスに影響が及ぶのは、暗号化された列からデータを取得するときと、暗号化された列にデータを挿入するときだけです。暗号化されていない列に対する操作では、たとえ同じ表に暗号化された列が含まれていても、パフォーマンスに影響が及ぶことはありません。ただし、暗号化されたデータには、プレーン・テキスト・データよりも多くの記憶域が必要なことに注意してください。平均的に、1つの列を暗号化すると、1行につき必要となる記憶域が32バイトから48バイトまで増えます。それでも、透過的表領域暗号化では暗号化と復号化がI/Oブロック層で実行されるため、より優れたパフォーマンスが得られます。復号化されたブロックはOracle Databaseのメモリーにキャッシュされ、それによりパフォーマンスが最適化されます。
関連項目:
透過的データ暗号化の使用の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。
透過的データ暗号化の使用を開始するには、キーストアを作成し、マスター鍵を設定する必要があります。
キーストアは、透過的データ暗号化専用の別個のキーストアである必要があります。このキーストアは、透過的データ暗号化によって暗号化されるすべてのデータに使用されます
sqlnet.ora
ファイルにキーストアのディレクトリの場所を指定する必要があります。 COMPATIBLE
初期化パラメータを11.2.0.0
以上に設定する必要があります。 ADMINISTER KEY MANAGEMENT
SQL文を使用します。 パスワードベースのソフトウェア・キーストアを作成する場合は、sqlnet.ora
ファイルにキーストアのディレクトリの場所を指定する必要があります。
キーストアの場所を構成するには、次のようにします。
$ORACLE_HOME
ディレクトリに、キーストアを格納するディレクトリを作成します。
たとえば、Microsoft WindowsのC:\oracle\product\12.2.0\db_1
ディレクトリにORA_KEYSTORES
という名前のディレクトリを作成します。
sqlnet.ora
ファイルのバックアップ・コピーを作成します。このファイルのデフォルトの場所は、$ORACLE_HOME/network/admin
ディレクトリです。
sqlnet.ora
ファイルの最後に、次のようなコードを追加します。ORA_KEYSTORES
は、キーストアを格納するディレクトリの名前です。
ENCRYPTION_WALLET_LOCATION= (SOURCE= (METHOD=file) (METHOD_DATA= (DIRECTORY=C:\oracle\product\12.2.0\db_1\ORA_KEYSTORES)))
sqlnet.ora
ファイルを保存して閉じます。
表領域の暗号化機能をすべて構成する場合、データベースのCOMPATIBLE
初期化パラメータを11.2.0.0
以上に設定する必要があります。
そうではない場合、11.0.0.0
以上であることを確認します。このパラメータを設定すると、変更できないことに注意してください。理想としては、最新リリースのOracle Databaseに対応するようにCOMPATIBLE
を設定する必要があります。
COMPATIBLE初期化パラメータを設定するには、次のようにします。
データベース・インスタンスにログインします。
次に例を示します。
sqlplus sec_admin
Enter password: password
Connected.
COMPATIBLE
パラメータの現在の設定を確認します。
次に例を示します。
SHOW PARAMETER COMPATIBLE NAME TYPE VALUE ------------------------------------ ----------- ------------- compatible string 11.0.0.0
COMPATIBLE
パラメータを変更する必要がある場合、この手順の残りのステップを実行します。
値は、11.2.0.0
以上である必要があります。
データベース・インスタンスの初期化パラメータ・ファイルを特定します。
UNIXシステム: このファイルは、ORACLE_HOME
/dbs
ディレクトリにあり、init
ORACLE_SID
.ora
(initmydb.ora
など)という名前です。
Windowsシステム: このファイルは、ORACLE_HOME
\database
ディレクトリにあり、init
ORACLE_SID
.ora
(initmydb.ora
など)という名前です。
正しいCOMPATIBLE
設定を使用して初期化パラメータ・ファイルを編集します。
次に例を示します。
COMPATIBLE = 12.2.0.0
SQL*Plusで、SYSDBA
管理権限を付与されたユーザーとしてログインします。
sqlplus sys as sysdba
Enter password: password
Oracle Databaseインスタンスを再起動します。
次に例を示します。
SHUTDOWN IMMEDIATE STARTUP
SQL*Plusからログアウトします。
キーストアを作成するには、ADMINISTER KEY MANAGEMENT
SQL文を使用します。
デフォルトでは、Oracleキーストアにはそれまで使用されたマスター鍵の履歴が格納されます。これにより、マスター鍵を変更したり、以前のマスター鍵で暗号化されたデータを復号化することができます。キーストア・パスワード(大/小文字の区別あり)はデータベース管理者には知らされないため、職務分掌を実現できます。つまり、データベース管理者がデータベースを再起動してもキーストアは閉じられたままで、セキュリティ管理者が手動でキーストア開くまでは、データベースのデータを暗号化することも復号化することもできません。
キーストアを作成するには、次のようにします。
SQL*Plusで、SYSKM
管理権限を付与されたユーザーとして接続します。
次に例を示します。
CONNECT psmith / AS SYSKM
Enter password: password
次のADMINISTER KEY MANAGEMENT
SQL文を実行します。
ADMINISTER KEY MANAGEMENT CREATE KEYSTORE 'keystore_location' IDENTIFIED BY software_keystore_password;
次のように指定します。
keystore_location
は、sqlnet.ora
ファイルに定義したキーストアの場所のパス(oracle\product\12.2.0\db_1\ORA_KEYSTORES
など)です。keystore_location
設定は一重引用符で囲みます。この場所を確認するには、V$ENCRYPTION_WALLET
ビューのWRL_PARAMETER
列を問い合せます。
software_keystore_password
は、セキュリティ管理者が作成する新規パスワードです。
たとえば、c:\oracle\product\12.2.0\db_1\ORA_KEYSTORES
にキーストアを作成する場合、次のようになります。
ADMINISTER KEY MANAGEMENT CREATE KEYSTORE 'c:\oracle\product\12.2.0\db_1\ORA_KEYSTORES
' IDENTIFIED BY password;
keystore altered.
この文を実行すると、キーストアを含むewallet.p12
ファイルがキーストアの場所に生成されます。
キーストアは、手動で開閉できます。自動ログイン・キーストアは、それらにアクセスすると自動的に開きます。
透過的データ暗号化を使用するには、パスワードベースのソフトウェア・キーストアを作成した後で手動で開く必要があります。
自動ログイン・キーストアまたはハードウェア・キーストアは自動的に開くので、これらを開く必要はありません。キーストアが開いているか、閉じているかのステータスは、V$ENCRYPTION_WALLET
ビューのSTATUS
列を問い合せて、確認できます。
キーストアを開く手順:
SYSKM
システム権限を付与されたユーザーとしてSQL*Plusにログインしていることを確認します。
次のADMINISTER KEY MANAGEMENT
SQL文を入力します。
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY software_keystore_password;
keystore altered.
software_keystore_password
は、「手順3: パスワードベースのソフトウェア・キーストアの作成」で作成したパスワードに置き換えます。
マスター鍵へのアクセスを無効にし、暗号化された列へのアクセスを防止する場合は、キーストアを閉じることができます。
ほとんどの場合、キーストアは、閉じる理由がないかぎり開いたままにします。透過的データ暗号化が機能するには、キーストアが開かれている必要があります。キーストアを再度開くには、ADMINISTER KEY MANAGEMENT
文を使用します。
キーストアを閉じる手順:
SYSKM
システム権限を付与されたユーザーとしてSQL*Plusにログインしていることを確認します。
次のSQL文を入力します。
ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY software_keystore_password;
キーストアに格納されるマスター暗号化鍵は、表キーと表領域暗号化鍵を保護します。
デフォルトでは、透過的データ暗号化(TDE)によって生成されるランダム鍵がマスター暗号化鍵として使用されます。
マスター暗号化鍵を作成するには、次のようにします。
SYSKM
システム権限を付与されたユーザーとしてSQL*Plusにログインしていることを確認します。
次の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';
次に、個々の表列もしくは表領域全体を暗号化する準備ができます。
列データ型のチェックなど、列を暗号化する前に従う必要のあるガイドラインを提供しています。
暗号化する列かどうかを識別するときに行う決定は、カリフォルニア州上院法案1386などの政府のセキュリティ規則、またはクレジット・カード業界(PCI)のデータ・セキュリティ基準などの業界の基準によって規定されます。クレジット・カード番号、社会保障番号、その他の個人情報(PII)はこのカテゴリに分類されます。独自の内部のセキュリティ・ポリシー(企業秘密、研究結果、従業員の給与、ボーナスなど)で、暗号化の要件を決定します。データを暗号化する場合と暗号化しない場合のガイドラインは、「データを暗号化するタイミング」を参照してください。
暗号化する列を選択するには、次のガイドラインに従います。
暗号化する列のデータ型をチェックします。透過的データ暗号化では、次のデータ型がサポートされす。
データ型: B~L | データ型: N~V |
---|---|
|
|
|
|
|
|
|
|
|
|
|
- |
脚注1
外部LOB (BFILE
)は、暗号化できません。
選択した列が外部キーの一部でないことを確認します。透過的データ暗号化を使用すると、各表に固有の暗号化鍵が作成されます。この暗号化鍵はデータベースのデータ・ディクショナリに格納され、外部のマスター鍵によって暗号化されます。暗号化された列は外部キーとして使用できません。
表の列を暗号化するには次のようにします。
キーストアを作成して開き、マスター暗号化鍵を作成していることを確認します。
必要に応じて、次の項を参照してください。
キーストアの鍵の作成方法の詳細は、「手順3: パスワードベースのソフトウェア・キーストアの作成」を参照してください
キーストアを開く方法の詳細は、「手順4: キーストアを開く(または閉じる)」を参照してください
マスター暗号化鍵の作成は、「手順5: マスター暗号化鍵の作成」を参照してください
Enterprise Managerでデータベース・ホームページにアクセスします。
詳細は、Oracle Database 2日でデータベース管理者を参照してください。
「スキーマ」メニューから、「データベース・オブジェクト」を選択し、「表」を選択します。
データベース・ログイン・ページが表示されたら、SYSDBA
管理権限を持つSYS
としてログインします。
表ページで、次のいずれかを実行します。
新しい表を作成するには、「作成」をクリックしてから表示されたページの質問に回答し、表の作成を開始します。
既存の表を変更するには、スキーマ名を「スキーマ」フィールドに、表名を「オブジェクト名」フィールドに入力して表名を検索します。(パーセント記号(%)ワイルドカード文字を使用して表のグループを検索できます。たとえば、Oで始まるすべての表を検索するには、O%
を使用します。)表が「表」ページに示されている場合は、その表を選択して「編集」をクリックします。
表の作成または表の編集ページで、暗号化オプションを設定できます。
たとえば、OE.ORDERS
表の列を暗号化する場合、「表の編集」ページは次のように表示されます。
「表の作成」(または「表の編集」)ページで、次の手順を実行します。
暗号化する列を選択します。
外部キー制約の一部である列(主キー列または一意キー列)は選択しないでください。これらの列は暗号化できません。これらの列には、名前の左側に鍵またはチェック・マーク・アイコンがあります。
「暗号化オプション」をクリックして、「表」ページの暗号化オプションを表示します。
「暗号化アルゴリズム」リストから次のオプションを選択します。
AES192: キーの長さを192ビットに設定します。AESは「Advanced Encryption Standard」の略です。
3DES168: キーの長さを168ビットに設定します。3DESは「Triple Data Encryption Standard」の略です。
AES128: キーの長さを128ビットに設定します。このオプションはデフォルトです。
AES256: キーの長さを256ビットに設定します。
「キーの生成」で、「ランダムにキーを生成」または「キーの指定」のどちらかを選択します。「キーの指定」を選択した場合は、「キーの入力」および「キーの確認」フィールドにシード値の文字を入力します。
「ランダムにキーを生成」設定を選択すると、ソルトが有効になります。ソルトとは、暗号化されたデータのセキュリティを強化する方法の1つで、暗号化される前のデータに追加されるランダムな文字列です。これにより、同じテキストであっても、暗号化されたときには異なって表示されます。結果として、暗号化されたテキストのパターン一致を使用する攻撃者は、盗み出したデータを使用できません。
「続行」をクリックして「表の作成」(または「表の編集」)ページに戻ります。
「暗号化」の下のボックスを選択して、列の暗号化を有効にします。
「適用」をクリックし、次に「戻る」をクリックします。
「表」ページが表示されます。
表の更新時も、読取りアクセスは可能です。後で、列内の既存のデータおよび将来格納されるデータは、データベース・ファイルに書き込まれるときに暗号化され、認可されたユーザーが選択したときに復号化されます。データ操作言語(DML)文が必要な場合は、オンラインで再定義できます。
新規表領域を作成中に新規表領域を暗号化できますが、既存の表領域を暗号化することはできません。
回避策として、CREATE TABLE AS SELECT
、ALTER TABLE MOVE
を使用するか、またはOracle Data Pumpインポートを使用して既存の表領域からデータを取得し、暗号化されている表領域に格納することができます。表領域の作成の詳細は、Oracle Database 2日でデータベース管理者を参照してください。
表領域を暗号化するには、次のようにします。
この項の前述の手順で説明されているように、キーストアを作成して開いていることを確認します。
Enterprise Managerでデータベース・ホームページにアクセスします。
詳細は、Oracle Database 2日でデータベース管理者を参照してください。
「管理」メニューから、「記憶域」を選択し、「表領域」を選択します。
データベース・ログイン・ページが表示されたら、SYS
などの管理ユーザーとしてログインします。ユーザーSYS
は、SYSDBAロールが選択されている状態でログインする必要があります。
「表領域」ページが表示されます。
「作成」をクリックしてから表示されたページの質問に回答し、表領域と必要なデータ・ファイルの作成を開始します。
「表領域の作成」ページで、次のステップを実行します。
「タイプ」の「永続」リストで、「暗号化」ボックスを選択します。
「データファイル」で、「追加」を選択してデータ・ファイルを追加します。(LinuxとWindowsシステムのみ)
「暗号化」オプションを選択して、「暗号化オプション」ページを表示します。
「暗号化アルゴリズム」リストから次のオプションを選択します。
AES192: キーの長さを192ビットに設定します。AESは「Advanced Encryption Standard」の略です。
3DES168: キーの長さを168ビットに設定します。3DESは「Triple Data Encryption Standard」の略です。
AES128: キーの長さを128ビットに設定します。このオプションはデフォルトです。
AES256: キーの長さを256ビットに設定します。
暗号化アルゴリズムの詳細は、「ネットワーク暗号化の設定」の手順5の「使用可能なメソッド」を参照してください。
「続行」をクリックします。
表領域の作成ページで、「OK」をクリックします。
既存の表領域のリストに新規表領域が表示されます。既存の表領域は暗号化できないことに注意してください。
関連項目:
既存の暗号化されている表領域についてデータベースに問い合せる場合は、「現行のデータベース・インスタンスで暗号化されている表領域のチェックのためのデータ・ディクショナリ・ビュー」を参照してください
表領域暗号化の詳細は、『Oracle Database Advanced Securityガイド』を参照してください
CREATE TABLESPACE
文の詳細は、『Oracle Databaseリファレンス』を参照してください
すでに暗号化されているデータについて、データベースに問い合せることができます。
暗号化された個々の列、暗号化された列を含む現行のデータベース・インスタンスのすべての表、暗号化されているすべての表領域をチェックできます。
V$ENCRYPTION_KEYS
動的ビューには、作成されたキーストアのタイプがリストされます。V$ENCRYPTION_WALLET
動的ビューには、キーストアの場所がリストされます。V$ENCRYPTION_WALLET
動的ビューは、キーストアが開いているか閉じているかを示します。 DESC
(DESCRIBE
)文で、データベース表内の暗号化されている列をチェックします。DBA_ENCRYPTED_COLUMNS
データ・ディクショナリ・ビューには、現在のインスタンス内のすべての暗号化された表の列がリストされます。 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.2.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 暗号化されている表領域のデータ・ディクショナリ・ビュー
データ・ディクショナリ・ビュー | 説明 |
---|---|
|
データベース内のすべての表領域が示されます。たとえば、表領域が暗号化されたかどうかを確認し、次のように入力します。 SELECT TABLESPACE_NAME, ENCRYPTED FROM DBA_TABLESPACES; TABLESPACE_NAME ENC ---------------------------- ---- SYSTEM NO SYSAUX NO UNCOTBS1 NO TEMP NO USERS NO EXAMPLE NO SECURESPACE YES |
|
現行ユーザーがアクセス可能な表領域について説明します。 |
|
暗号化されている表領域に関する情報が示されます。次に例を示します。 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リファレンス』を参照してください